static function getMap()
{
return array(
'ID' => array(
'data_type' => 'integer',
'primary' => true,
'autocomplete' => true,
),
'CLIENT_ID' => array(
'data_type' => 'string',
'required' => true,
'validation' => array(__CLASS__, 'validateClientId'),
),
'CODE' => array(
'data_type' => 'string',
'required' => true,
'validation' => array(__CLASS__, 'validateCode'),
),
'ACTIVE' => array(
'data_type' => 'boolean',
'values' => array(static::INACTIVE, static::ACTIVE),
),
'INSTALLED' => array(
'data_type' => 'boolean',
'values' => array(static::NOT_INSTALLED, static::INSTALLED),
),
'URL' => array(
'data_type' => 'string',
'validation' => array(__CLASS__, 'validateUrl'),
),
'URL_DEMO' => array(
'data_type' => 'string',
'validation' => array(__CLASS__, 'validateUrlDemo'),
),
'URL_INSTALL' => array(
'data_type' => 'string',
'validation' => array(__CLASS__, 'validateUrlInstall'),
),
'VERSION' => array(
'data_type' => 'string',
'validation' => array(__CLASS__, 'validateVersion'),
),
'SCOPE' => array(
'data_type' => 'string',
'required' => true,
'validation' => array(__CLASS__, 'validateScope'),
),
'STATUS' => array(
'data_type' => 'enum',
'required' => true,
'values' => array(
static::STATUS_LOCAL,
static::STATUS_FREE,
static::STATUS_PAID,
static::STATUS_DEMO,
static::STATUS_TRIAL,
static::STATUS_SUBSCRIPTION,
),
),
'DATE_FINISH' => array(
'data_type' => 'date',
),
'IS_TRIALED' => array(
'data_type' => 'boolean',
'values' => array(static::NOT_TRIALED, static::TRIALED),
),
'SHARED_KEY' => array(
'data_type' => 'string',
'validation' => array(__CLASS__, 'validateSharedKey'),
),
'CLIENT_SECRET' => array(
'data_type' => 'string',
'validation' => array(__CLASS__, 'validateClientSecret'),
),
'APP_NAME' => array(
'data_type' => 'string',
'validation' => array(__CLASS__, 'validateAppName'),
),
'ACCESS' => array(
'data_type' => 'string',
'validation' => array(__CLASS__, 'validateAccess'),
),
'APPLICATION_TOKEN' => array(
'data_type' => 'string',
),
'MOBILE' => array(
'data_type' => 'boolean',
'values' => array(static::INACTIVE, static::ACTIVE),
),
'USER_INSTALL' => array(
'data_type' => 'boolean',
'values' => array(static::INACTIVE, static::ACTIVE),
),
'LANG' => array(
'data_type' => 'BitrixRestAppLangTable',
'reference' => array(
'=this.ID' => 'ref.APP_ID',
'=ref.LANGUAGE_ID' => new MainDBSqlExpression('?s', LANGUAGE_ID),
),
),
'LANG_DEFAULT' => array(
'data_type' => 'BitrixRestAppLangTable',
'reference' => array(
'=this.ID' => 'ref.APP_ID',
'=ref.LANGUAGE_ID' => new MainDBSqlExpression('?s', Loc::getDefaultLang(LANGUAGE_ID)),
),
),
'LANG_LICENSE' => array(
'data_type' => 'BitrixRestAppLangTable',
'reference' => array(
'=this.ID' => 'ref.APP_ID',
'=ref.LANGUAGE_ID' => new MainDBSqlExpression('?s', static::getLicenseLanguage()),
),
),
(new OneToMany('LANG_ALL', AppLangTable::class, 'APP'))
->configureJoinType('left')
);
}