// Package m2m реализует доменную модель сообщений M2M по XSD НРД
// (M2MSchemas_260408): simple-типы, enum'ы и структуры шести типов
// сообщений. Все имена типов и полей соответствуют XSD.
package m2m

// StatusCode — код статуса обработки (StatusCodeEnum в XSD).
type StatusCode string

const (
	StatusInfo  StatusCode = "INFO"
	StatusError StatusCode = "ERROR"
)

// IIAContractType — тип договора ИИС (IIAContractTypeEnum в XSD).
// T12 — открытие/обмен ИИС-1 или ИИС-2; T03 — открытие/обмен ИИС-3.
type IIAContractType string

const (
	IIAContractT12 IIAContractType = "T12"
	IIAContractT03 IIAContractType = "T03"
)

// SecurityClassification — вид ценной бумаги (SecurityClassificationEnum).
type SecurityClassification string

const (
	SecurityBond SecurityClassification = "BOND"
	SecurityShar SecurityClassification = "SHAR"
	SecurityMfun SecurityClassification = "MFUN"
)

// SecurityCategory — категория ценной бумаги (SecurityCategoryEnum).
type SecurityCategory string

const (
	CategoryOrdn SecurityCategory = "ORDN"
	CategoryPref SecurityCategory = "PREF"
	CategoryUkwn SecurityCategory = "UKWN"
)

// IdentityDocumentCode — код документа, удостоверяющего личность
// (IdentityDocumentCodeEnum). Допустимые значения — двузначные строки
// согласно справочнику НРД.
type IdentityDocumentCode string

const (
	DocCode01 IdentityDocumentCode = "01"
	DocCode02 IdentityDocumentCode = "02"
	DocCode03 IdentityDocumentCode = "03"
	DocCode04 IdentityDocumentCode = "04"
	DocCode05 IdentityDocumentCode = "05"
	DocCode06 IdentityDocumentCode = "06"
	DocCode07 IdentityDocumentCode = "07"
	DocCode09 IdentityDocumentCode = "09"
	DocCode10 IdentityDocumentCode = "10"
	DocCode11 IdentityDocumentCode = "11"
	DocCode12 IdentityDocumentCode = "12"
	DocCode13 IdentityDocumentCode = "13"
	DocCode14 IdentityDocumentCode = "14"
	DocCode21 IdentityDocumentCode = "21"
	DocCode22 IdentityDocumentCode = "22"
	DocCode23 IdentityDocumentCode = "23"
	DocCode26 IdentityDocumentCode = "26"
	DocCode27 IdentityDocumentCode = "27"
	DocCode91 IdentityDocumentCode = "91"
)

// IsolationStatus — статус обособления ценных бумаг
// (SecurityIsolationEnum). Единственное допустимое значение — SGDN.
type IsolationStatus string

const IsolationSGDN IsolationStatus = "SGDN"

// DeponentCode — код депонента (DeponentCodeType): 1..12 символов из
// множества [A-Z0-9].
type DeponentCode string

// ReferenceID — идентификатор операции (ReferenceIDType): ровно
// 16 символов, формат M2M + 13 символов [A-Z0-9].
type ReferenceID string

// ISIN — международный идентификатор ценной бумаги (ISINtype): 12
// символов, формат [A-Z]{2}[A-Z0-9]{9}[0-9].
type ISIN string

// OrganizationINN — ИНН юридического лица (OrganizationINNType): ровно
// 10 цифр.
type OrganizationINN string

// UUID — глобальный идентификатор сообщения (UUIDType): 36 символов
// формата UUID.
type UUID string

// AccountID — номер (код) счёта депо (AccountIDType): 1..50 символов.
type AccountID string

// SecurityCode — идентификатор ценной бумаги в кодах НРД
// (SecurityCodeType): ровно 12 символов из [0-9A-Z_/-].
type SecurityCode string

// IdentityDocSerial — серия или номер документа
// (IdentityDocSerialType): не короче 1 символа, без пробельных.
type IdentityDocSerial string
