/* eslint-disable camelcase,no-unused-vars,new-cap,no-undef,comma-dangle */
// This file is generated automatically and contain definition for code insight.
// It ignored by UnityBase server because name start from "_".
// Do not modify this file directly, instead run `ubcli createCodeInsightHelper -u root`

/**
 * Set of dictionaries, common for most enterprise systems. For internal organization structure see @ubitybase/org module
 *
 * @version 5.23.61
 * @module @unitybase/cdn
 */

/**
 * Addresses directory
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_address_ns extends EntityNamespace {}

/**
 * @typedef cdnAddressAttrs
 * @type {object}
 * @property {number} ID
 * @property {string|ubmEnumAttrs} addressType - Address type
 * @property {string} value - Address
 * @property {number} subjectID - Subject
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnAddressAttrs}
 */
cdn_address_ns.attrs = {}

/**
 * Addresses directory
 *
 * @type {cdn_address_ns}
 */
const cdn_address = new cdn_address_ns()
/**
 * Admin unit (country, region, city).
 * Main parent for countries, regions and cities
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_adminunit_ns extends EntityNamespace {}

/**
 * @typedef cdnAdminunitAttrs
 * @type {object}
 * @property {number} ID
 * @property {number|cdnAdminunitAttrs} parentAdminUnitID - Parent
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {string} fullName - Full name
 * @property {string|ubmEnumAttrs} adminUnitType - Admin unit type
 * @property {string} caption - Caption
 * @property {string} mi_unityEntity
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnAdminunitAttrs}
 */
cdn_adminunit_ns.attrs = {}

/**
 * Admin unit (country, region, city).
 * Main parent for countries, regions and cities
 *
 * @type {cdn_adminunit_ns}
 */
const cdn_adminunit = new cdn_adminunit_ns()
/**
 * Bank branches directory
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_bank_ns extends EntityNamespace {}

/**
 * @typedef cdnBankAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} MFO - Bank code
 * @property {string} code - Organization code
 * @property {string} name - Name
 * @property {string} fullName - Full name
 * @property {string} phones - Phones
 * @property {string} address - Address
 * @property {number|cdnCountryAttrs} countryID - Country
 * @property {number|cdnCityAttrs} cityID - City
 * @property {string} description - Description
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnBankAttrs}
 */
cdn_bank_ns.attrs = {}

/**
 * Bank branches directory
 *
 * @type {cdn_bank_ns}
 */
const cdn_bank = new cdn_bank_ns()
/**
 * List of buildings
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes dataHistory
 */
class cdn_building_ns extends EntityNamespace {}

/**
 * @typedef cdnBuildingAttrs
 * @type {object}
 * @property {number} ID
 * @property {number|cdnStreetAttrs} streetID - Street
 * @property {number|cdnPostindexAttrs} postIndexID - Zip
 * @property {string} code - Num
 * @property {string} description - Description
 * @property {string|ubmEnumAttrs} buildingType - Type
 * @property {number|cdnBuildingAttrs} mi_data_id
 * @property {Date} mi_dateFrom
 * @property {Date} mi_dateTo
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnBuildingAttrs}
 */
cdn_building_ns.attrs = {}

/**
 * List of buildings
 *
 * @type {cdn_building_ns}
 */
const cdn_building = new cdn_building_ns()
/**
 * Cities directory
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes unity
 */
class cdn_city_ns extends EntityNamespace {}

/**
 * @typedef cdnCityAttrs
 * @type {object}
 * @property {number|cdnAdminunitAttrs} ID
 * @property {number|cdnAdminunitAttrs} parentAdminUnitID - Parent
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {string} caption - Caption
 * @property {string} description - Description
 * @property {string} postalCode - Postal code
 * @property {string} phoneCode - Phone code
 * @property {number|cdnCitytypeAttrs} cityTypeID - Type
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnCityAttrs}
 */
cdn_city_ns.attrs = {}

/**
 * Cities directory
 *
 * @type {cdn_city_ns}
 */
const cdn_city = new cdn_city_ns()
/**
 * City types directory
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_citytype_ns extends EntityNamespace {}

/**
 * @typedef cdnCitytypeAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnCitytypeAttrs}
 */
cdn_citytype_ns.attrs = {}

/**
 * City types directory
 *
 * @type {cdn_citytype_ns}
 */
const cdn_citytype = new cdn_citytype_ns()
/**
 * Classifiers
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes unity
 */
class cdn_classifier_ns extends EntityNamespace {}

/**
 * @typedef cdnClassifierAttrs
 * @type {object}
 * @property {number|ubmQueryAttrs} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {string} description - Description
 * @property {string|ubmEnumAttrs} orderByAttr - Classifier items order
 * @property {*} ubql - UBQL (JSON)
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnClassifierAttrs}
 */
cdn_classifier_ns.attrs = {}

/**
 * Classifiers
 *
 * @type {cdn_classifier_ns}
 */
const cdn_classifier = new cdn_classifier_ns()
/**
 * Classifier Items
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes tree
 */
class cdn_classifieritem_ns extends EntityNamespace {}

/**
 * @typedef cdnClassifieritemAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - System code
 * @property {string} name - Name
 * @property {number|cdnClassifierAttrs} classifierID - Classifier
 * @property {number|cdnClassifieritemAttrs} parentID - Parent
 * @property {number} hierarchyLevel - Level
 * @property {string} mi_treePath
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnClassifieritemAttrs}
 */
cdn_classifieritem_ns.attrs = {}

/**
 * Classifier Items
 *
 * @type {cdn_classifieritem_ns}
 */
const cdn_classifieritem = new cdn_classifieritem_ns()
/**
 * Contacts directory
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_contact_ns extends EntityNamespace {}

/**
 * @typedef cdnContactAttrs
 * @type {object}
 * @property {number} ID
 * @property {number|cdnContacttypeAttrs} contactTypeID - Contact type
 * @property {string} value - Contact
 * @property {number} subjectID - Subject
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnContactAttrs}
 */
cdn_contact_ns.attrs = {}

/**
 * Contacts directory
 *
 * @type {cdn_contact_ns}
 */
const cdn_contact = new cdn_contact_ns()
/**
 * Contact types directory
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_contacttype_ns extends EntityNamespace {}

/**
 * @typedef cdnContacttypeAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnContacttypeAttrs}
 */
cdn_contacttype_ns.attrs = {}

/**
 * Contact types directory
 *
 * @type {cdn_contacttype_ns}
 */
const cdn_contacttype = new cdn_contacttype_ns()
/**
 * Correspondent indexes directory
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_corrindex_ns extends EntityNamespace {}

/**
 * @typedef cdnCorrindexAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {string} fullName - Full name
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnCorrindexAttrs}
 */
cdn_corrindex_ns.attrs = {}

/**
 * Correspondent indexes directory
 *
 * @type {cdn_corrindex_ns}
 */
const cdn_corrindex = new cdn_corrindex_ns()
/**
 * Countries directory
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes unity
 */
class cdn_country_ns extends EntityNamespace {}

/**
 * @typedef cdnCountryAttrs
 * @type {object}
 * @property {number|cdnAdminunitAttrs} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {string} fullName - Full name
 * @property {number} intCode - Digital code
 * @property {string} symbol2 - ISO code
 * @property {string} symbol3 - IOC code
 * @property {string} description - Description
 * @property {string} phoneCode - Phone code
 * @property {number|cdnCurrencyAttrs} currencyID - Currency
 * @property {number|cdnCityAttrs} capitalID - Capital
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnCountryAttrs}
 */
cdn_country_ns.attrs = {}

/**
 * Countries directory
 *
 * @type {cdn_country_ns}
 */
const cdn_country = new cdn_country_ns()
/**
 * Currencies dictionary
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_currency_ns extends EntityNamespace {}

/**
 * @typedef cdnCurrencyAttrs
 * @type {object}
 * @property {number} ID
 * @property {number} intCode - Digital code
 * @property {string} code3 - 3-character code
 * @property {string} name - Name
 * @property {number} curMult - Default multiplicity
 * @property {string} description - Description
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnCurrencyAttrs}
 */
cdn_currency_ns.attrs = {}

/**
 * Currencies dictionary
 *
 * @type {cdn_currency_ns}
 */
const cdn_currency = new cdn_currency_ns()
/**
 * Departments of counterparties dictionary
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes dataHistory
 */
class cdn_department_ns extends EntityNamespace {}

/**
 * @typedef cdnDepartmentAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {string} fullName - Full name
 * @property {string} description - Description
 * @property {string} nameGen - Name in genitive case
 * @property {string} nameDat - Name in dative case
 * @property {string} fullNameGen - Full name in genitive case
 * @property {string} fullNameDat - Full name in dative case
 * @property {number|cdnDeptypeAttrs} depTypeID - Type
 * @property {number|cdnOrganizationAttrs} organizationID - Organization
 * @property {number|cdnDepartmentAttrs} mi_data_id
 * @property {Date} mi_dateFrom
 * @property {Date} mi_dateTo
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnDepartmentAttrs}
 */
cdn_department_ns.attrs = {}

/**
 * Departments of counterparties dictionary
 *
 * @type {cdn_department_ns}
 */
const cdn_department = new cdn_department_ns()
/**
 * Department types dictionary
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_deptype_ns extends EntityNamespace {}

/**
 * @typedef cdnDeptypeAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnDeptypeAttrs}
 */
cdn_deptype_ns.attrs = {}

/**
 * Department types dictionary
 *
 * @type {cdn_deptype_ns}
 */
const cdn_deptype = new cdn_deptype_ns()
/**
 * List of employees of counterparties
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes dataHistory
 */
class cdn_employee_ns extends EntityNamespace {}

/**
 * @typedef cdnEmployeeAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} lastName - Last name
 * @property {string} firstName - First name
 * @property {string} middleName - Middle name
 * @property {string} description - Description
 * @property {string|ubmEnumAttrs} sexType - Gender
 * @property {string} uniqNum - Employee number
 * @property {string} suffix - Suffix
 * @property {string} shortFIO - Last name with initials
 * @property {string} fullFIO - Full name
 * @property {string} apply - Treatment
 * @property {string} lastNameGen - Last name in genitive
 * @property {string} lastNameDat - Last name in dative
 * @property {string} firstNameGen - First name in genitive
 * @property {string} firstNameDat - First name in dative
 * @property {string} middleNameGen - Middle name in genitive
 * @property {string} middleNameDat - Middle name in dative
 * @property {string} shortFIOGen - Short name in genitive
 * @property {string} shortFIODat - Short name in dative
 * @property {string} fullFIOGen - Full name in genitive
 * @property {string} fullFIODat - Full name in dative
 * @property {string} applyGen - Treatment in genitive
 * @property {string} applyDat - Treatment in dative
 * @property {number|cdnDepartmentAttrs} departmentID - Department
 * @property {number|cdnOrganizationAttrs} organizationID - Organization
 * @property {string} addrText - Addressee formulation
 * @property {number|cdnEmployeeAttrs} mi_data_id
 * @property {Date} mi_dateFrom
 * @property {Date} mi_dateTo
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnEmployeeAttrs}
 */
cdn_employee_ns.attrs = {}

/**
 * List of employees of counterparties
 *
 * @type {cdn_employee_ns}
 */
const cdn_employee = new cdn_employee_ns()
/**
 * List of languages
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_language_ns extends EntityNamespace {}

/**
 * @typedef cdnLanguageAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - ISO 639-1 code
 * @property {string} languageName - Language name
 * @property {string} nativeName - Native name (Endonym)
 * @property {boolean} isRTL - Is right-to-left
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnLanguageAttrs}
 */
cdn_language_ns.attrs = {}

/**
 * List of languages
 *
 * @type {cdn_language_ns}
 */
const cdn_language = new cdn_language_ns()
/**
 * List of nationalities
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_nationality_ns extends EntityNamespace {}

/**
 * @typedef cdnNationalityAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {string} nameM - Name(male)
 * @property {string} nameF - Name(female)
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnNationalityAttrs}
 */
cdn_nationality_ns.attrs = {}

/**
 * List of nationalities
 *
 * @type {cdn_nationality_ns}
 */
const cdn_nationality = new cdn_nationality_ns()
/**
 * Organization's settlement accounts
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_orgaccount_ns extends EntityNamespace {}

/**
 * @typedef cdnOrgaccountAttrs
 * @type {object}
 * @property {number} ID
 * @property {number|cdnOrganizationAttrs} organizationID - Organization
 * @property {number|cdnCurrencyAttrs} currencyID - Currency
 * @property {number|cdnBankAttrs} bankID - Bank
 * @property {string} code - Code
 * @property {string|ubmEnumAttrs} acctype - Type
 * @property {string} description - Description
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnOrgaccountAttrs}
 */
cdn_orgaccount_ns.attrs = {}

/**
 * Organization's settlement accounts
 *
 * @type {cdn_orgaccount_ns}
 */
const cdn_orgaccount = new cdn_orgaccount_ns()
/**
 * List of counterparties
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes dataHistory
 * @mixes fts
 */
class cdn_organization_ns extends EntityNamespace {}

/**
 * @typedef cdnOrganizationAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Internal code
 * @property {string} OKPOCode - CCEO
 * @property {string} taxCode - Tax number
 * @property {string} vatCode - VAT number
 * @property {string} name - Organization name
 * @property {string} fullName - Organization full name
 * @property {string} nameGen - Name in genitive case
 * @property {string} nameDat - Name in dative case
 * @property {string} fullNameGen - Full name in genitive case
 * @property {string} fullNameDat - Full name in dative case
 * @property {string} description - Organization description
 * @property {number|cdnOrgbusinesstypeAttrs} orgBusinessTypeID - Organization type
 * @property {number|cdnOrgownershiptypeAttrs} orgOwnershipTypeID - Ownership type
 * @property {number|cdnCorrindexAttrs} corrIndexID - Index of correspondent
 * @property {string} addrText - Addressee formulation
 * @property {string} caption - Caption
 * @property {number|cdnCountryAttrs} countryID - Country
 * @property {number|cdnOrganizationAttrs} mi_data_id
 * @property {Date} mi_dateFrom
 * @property {Date} mi_dateTo
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnOrganizationAttrs}
 */
cdn_organization_ns.attrs = {}

/**
 * List of counterparties
 *
 * @type {cdn_organization_ns}
 */
const cdn_organization = new cdn_organization_ns()
/**
 * Organization types dictionary (LTD etc.)
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_orgbusinesstype_ns extends EntityNamespace {}

/**
 * @typedef cdnOrgbusinesstypeAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} shortName - Acronim
 * @property {string} name - Name
 * @property {string} fullName - Description
 * @property {boolean} isGovAuthority - Gov. authority
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnOrgbusinesstypeAttrs}
 */
cdn_orgbusinesstype_ns.attrs = {}

/**
 * Organization types dictionary (LTD etc.)
 *
 * @type {cdn_orgbusinesstype_ns}
 */
const cdn_orgbusinesstype = new cdn_orgbusinesstype_ns()
/**
 * Types of ownership
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_orgownershiptype_ns extends EntityNamespace {}

/**
 * @typedef cdnOrgownershiptypeAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} shortName - Acronim
 * @property {string} name - Name
 * @property {string} fullName - Full name
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnOrgownershiptypeAttrs}
 */
cdn_orgownershiptype_ns.attrs = {}

/**
 * Types of ownership
 *
 * @type {cdn_orgownershiptype_ns}
 */
const cdn_orgownershiptype = new cdn_orgownershiptype_ns()
/**
 * Physical persons dictionary.
 * The directory stores a list of persons (physical persons)
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes dataHistory
 * @mixes fts
 */
class cdn_person_ns extends EntityNamespace {}

/**
 * @typedef cdnPersonAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} lastName - Last name
 * @property {string} firstName - First name
 * @property {string} middleName - Middle name
 * @property {string} identCard - Identity card
 * @property {string} workPlacePos - Place of work, position
 * @property {Date} birthDate - Birthday
 * @property {string} description - Description
 * @property {string|ubmEnumAttrs} sexType - Gender
 * @property {string} suffix - Suffix
 * @property {string} shortFIO - Short name
 * @property {string} fullFIO - Full name
 * @property {string} apply - Apply
 * @property {string} photo - Photo
 * @property {string} lastNameGen - Last name in genitive
 * @property {string} lastNameDat - Last name in dative
 * @property {string} firstNameGen - First name in genitive
 * @property {string} firstNameDat - First name in dative
 * @property {string} middleNameGen - Middle name in genitive
 * @property {string} middleNameDat - Middle name in dative
 * @property {string} shortFIOGen - Short name in genitive
 * @property {string} shortFIODat - Short name in dative
 * @property {string} fullFIOGen - Full name in genitive
 * @property {string} fullFIODat - Full name in dative
 * @property {string} applyGen - Apply in genitive
 * @property {string} applyDat - Apply in dative
 * @property {number|cdnRegionAttrs} regionID - Region
 * @property {number|cdnPersonsocialstatusAttrs} socialstatusID - Social status
 * @property {number|cdnPersoncategoryAttrs} categoryID - Category
 * @property {number|cdnNationalityAttrs} nationality - Nationality
 * @property {boolean} resident - Resident?
 * @property {number|cdnPersonclassAttrs} classID - Person classification
 * @property {number|cdnPersonAttrs} mi_data_id
 * @property {Date} mi_dateFrom
 * @property {Date} mi_dateTo
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnPersonAttrs}
 */
cdn_person_ns.attrs = {}

/**
 * Physical persons dictionary.
 * The directory stores a list of persons (physical persons)
 *
 * @type {cdn_person_ns}
 */
const cdn_person = new cdn_person_ns()
/**
 * Categories of persons.
 * The directory stores a list of categories or physical persons
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_personcategory_ns extends EntityNamespace {}

/**
 * @typedef cdnPersoncategoryAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnPersoncategoryAttrs}
 */
cdn_personcategory_ns.attrs = {}

/**
 * Categories of persons.
 * The directory stores a list of categories or physical persons
 *
 * @type {cdn_personcategory_ns}
 */
const cdn_personcategory = new cdn_personcategory_ns()
/**
 * Person classification.
 * Internal classification of persons
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_personclass_ns extends EntityNamespace {}

/**
 * @typedef cdnPersonclassAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnPersonclassAttrs}
 */
cdn_personclass_ns.attrs = {}

/**
 * Person classification.
 * Internal classification of persons
 *
 * @type {cdn_personclass_ns}
 */
const cdn_personclass = new cdn_personclass_ns()
/**
 * Dictionary of social status.
 * The directory stores a list of social status for individuals
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_personsocialstatus_ns extends EntityNamespace {}

/**
 * @typedef cdnPersonsocialstatusAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnPersonsocialstatusAttrs}
 */
cdn_personsocialstatus_ns.attrs = {}

/**
 * Dictionary of social status.
 * The directory stores a list of social status for individuals
 *
 * @type {cdn_personsocialstatus_ns}
 */
const cdn_personsocialstatus = new cdn_personsocialstatus_ns()
/**
 * ZIP codes
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_postindex_ns extends EntityNamespace {}

/**
 * @typedef cdnPostindexAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Index
 * @property {number|cdnStreetAttrs} streetID - Street
 * @property {string} description - Description
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnPostindexAttrs}
 */
cdn_postindex_ns.attrs = {}

/**
 * ZIP codes
 *
 * @type {cdn_postindex_ns}
 */
const cdn_postindex = new cdn_postindex_ns()
/**
 * Dictionary of standard professions
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_profession_ns extends EntityNamespace {}

/**
 * @typedef cdnProfessionAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {string} description - Caption
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnProfessionAttrs}
 */
cdn_profession_ns.attrs = {}

/**
 * Dictionary of standard professions
 *
 * @type {cdn_profession_ns}
 */
const cdn_profession = new cdn_profession_ns()
/**
 * Regions dictionary
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes dataHistory
 * @mixes unity
 */
class cdn_region_ns extends EntityNamespace {}

/**
 * @typedef cdnRegionAttrs
 * @type {object}
 * @property {number|cdnAdminunitAttrs} ID
 * @property {number|cdnAdminunitAttrs} parentAdminUnitID - Parent
 * @property {string} code - Code
 * @property {number|cdnRegiontypeAttrs} regionTypeID - Type
 * @property {string} name - Name
 * @property {string} caption - Caption
 * @property {string} fullName - Full name
 * @property {string} description - Description
 * @property {string} phoneCode - Phone code
 * @property {number|cdnCityAttrs} centerID - Center
 * @property {number|cdnRegionAttrs} mi_data_id
 * @property {Date} mi_dateFrom
 * @property {Date} mi_dateTo
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnRegionAttrs}
 */
cdn_region_ns.attrs = {}

/**
 * Regions dictionary
 *
 * @type {cdn_region_ns}
 */
const cdn_region = new cdn_region_ns()
/**
 * Region types dictionary
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_regiontype_ns extends EntityNamespace {}

/**
 * @typedef cdnRegiontypeAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnRegiontypeAttrs}
 */
cdn_regiontype_ns.attrs = {}

/**
 * Region types dictionary
 *
 * @type {cdn_regiontype_ns}
 */
const cdn_regiontype = new cdn_regiontype_ns()
/**
 * Staffunit types dictionary
 *
 * @augments EntityNamespace
 * @mixes mStorage
 */
class cdn_staffunittype_ns extends EntityNamespace {}

/**
 * @typedef cdnStaffunittypeAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} code - Code
 * @property {string} name - Name
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnStaffunittypeAttrs}
 */
cdn_staffunittype_ns.attrs = {}

/**
 * Staffunit types dictionary
 *
 * @type {cdn_staffunittype_ns}
 */
const cdn_staffunittype = new cdn_staffunittype_ns()
/**
 * List of streets
 *
 * @augments EntityNamespace
 * @mixes mStorage
 * @mixes dataHistory
 */
class cdn_street_ns extends EntityNamespace {}

/**
 * @typedef cdnStreetAttrs
 * @type {object}
 * @property {number} ID
 * @property {string} name - Name
 * @property {string} fullName - Full name
 * @property {string} code - Code
 * @property {string|ubmEnumAttrs} streetType - Type
 * @property {number|cdnCityAttrs} cityID - City
 * @property {number|cdnStreetAttrs} mi_data_id
 * @property {Date} mi_dateFrom
 * @property {Date} mi_dateTo
 * @property {number|ubaUserAttrs} mi_owner
 * @property {Date} mi_createDate
 * @property {number|ubaUserAttrs} mi_createUser
 * @property {Date} mi_modifyDate
 * @property {number|ubaUserAttrs} mi_modifyUser
 * @property {Date} mi_deleteDate
 * @property {number|ubaUserAttrs} mi_deleteUser
 */

/**
 * Attributes defined in metadata. Property does not exist in real life and added for IDE
 *
 * @type {cdnStreetAttrs}
 */
cdn_street_ns.attrs = {}

/**
 * List of streets
 *
 * @type {cdn_street_ns}
 */
const cdn_street = new cdn_street_ns()