------------------------------------------------------------------------------------------------------------------------
Адреса, address
------------------------------------------------------------------------------------------------------------------------
Содержит список адресов, используемых в ППО АСОИ.
Описание:
create table address
 (
 -- уникальный ид адреса, на который ссылаются остальные сущности в БД, имеющие адреса
 	id serial not null
 		constraint address_pkey
 			primary key,
 -- ид района (ссылка на справочник addr_regions(region_id))
 -- примеры значений в справочнике:
 -- 1,Ханты-Мансийск
 -- 2,Ханты-Мансийский район
 -- 3,Лангепас
 -- 4,Мегион
 -- и т.д.
 	region_id smallint,
 -- ид населенного пункта (ссылка на справочник addr_city(region_id, city_id))
 	city_id smallint,
 -- ид улицы в населенном пункте (ссылка на справочник addr_street(region_id, city_id, street_id))
 	street_id smallint,
 -- номер дома
 	house varchar(256),
 -- номер строения
 	building varchar(256),
 -- номер комнаты
 	room varchar(256),
 -- адрес в текстовом представлении (в растоящий момент не используется)
 	other varchar(256),
 -- текстовое представления адреса
 	address_short_text varchar(256),
 -- нормализованное представление адреса, например, для всяких там "г. Высокий, ул. Гагарина Мира 7г, 5 " -> "высокий гагарина мира 7 г 5"
 	address_normalized varchar(256),
 -- aoguid соответствующего дома в ФИАС (справочник ФИАС houseXX.dbf)
 	houseguid uuid,
 -- aoguid соответствующей квартиры в ФИАС (справочник ФИАС roomXX.dbf)
 	roomguid uuid,
 -- внешний ключ
 	constraint address_region_id_fkey
 		foreign key (region_id, city_id, street_id) references addr_street
 );

------------------------------------------------------------------------------------------------------------------------
Персональные документы, doc_ogbd
------------------------------------------------------------------------------------------------------------------------
Содержит основные сведения персональных документов гражданина. Большая часть сведений по гражданам, содержится именно
в персональных документах.
Описание:
create table document
(
-- ид гражданина, которому принадлежит персональный документ (ссылка на таблицу person)
	person_id integer not null
		constraint documents_people_id_fkey
			references person,
-- ид персонального документа
	id serial not null,
-- источник персонального документа (откуда взялся в системе), справочник doc_source, примеры значений:
-- 1 - Заявитель или иной источник (ручной ввод)
-- 2 - Пенсионный фонд РФ (загрузка РСДП)
-- 3 - СМЭВ
	doc_source_id smallint not null,
-- тип персонального документа, справочник doc_type, примеры значений:
-- 1 - Удостоверения личности
-- 2 - Льготные удостоверения/Справки
-- 3 - Неподтверждённые учетные сведения
-- 4 - Адреса
	doc_type_id smallint not null,
-- подтип персонального документа (ссылка на справочник doc_subtype(doc_type_id, doc_subtype_id))
	doc_subtype_id smallint not null,
-- дата документа
	doc_date date not null,
-- номер документа
	doc_number bigint,
-- серия документа
	doc_serial varchar(256),
-- фамилия (используется для видов документов, в которых есть фамилия, например 1 'Удостоверения личности',
--  3 'Неподтверждённые учетные сведения', 25 'Сведения о записях актов гражданского состояния'
	t1_last_name varchar(256),
-- имя (условия заполнения аналогичны фамилии)
	t1_first_name varchar(256),
-- отчетство (условия заполнения аналогичны фамилии)
	t1_middle_name varchar,
-- дата рождения (условия заполнения аналогичны фамилии)
	t1_birth_date date,
-- организация, выдавшая документ
	t1_orggiven varchar,
-- адрес (ссылка на address), используется для видов документов с адресами, например 4 'Адреса'
	t1_regaddress integer
		constraint documents_t1_regaddress_fkey
			references address,
-- дата действия документа 'с'
	t2_date_from date,
-- дата действия документа 'по'
	t2_date_to date,
-- сумма в документе:
-- 1) для документов, включающих сумму, содержит эту сумму, например, 11 'Фактически понесенные расходы'
-- 2) для паспортов - код подразделения (целая часть значения, например "860003.0000")
	t5_amount numeric(18,4),
-- в зависимости от вида документов содержит:
-- 1) для вида документа 15 'трудовая биография' содержит одно из значений: 1 - 'Гос. служба', 2 - 'Мун. служба', 127 - 'Иное'
	extra_smallint1 smallint,
-- в зависимости от вида документов содержит:
-- 1) для видов документа 1 'Удостоверения личности', 3 'Неподтверждённые учетные сведения' содержит пол гражданина - true - муж., false - жен.
	extra_bool1 boolean,
-- ид поставщика услуг (внешнаяя ссылка на справочник contractor), используется в персональных документах типов:
--   20 'Сведения о лицевом счете у контрагентов'
--   11 'Сведения о фактически понесенных расходах'
--   19 'Сведения о задолженности по оплате ЖКУ'
	contractor_id integer
		constraint document_contractor_id_fkey
			references contractor,
-- место рождения (условия заполнения аналогичны фамилии)
	t1_placebirth varchar,
-- состояние проверки документа в СМЭВ (на данный момент используется только для паспортов), одно из значений
-- 0 'Не подлежит сверке', 1 'Сверка запланирована', 2 'Запуск сверки', 10 'Сверка выполняется', 200 'Успешная сверка',
-- -1 'Данные некорректны', -500 'Не проведена из-за ошибки'
	verification_state integer,
-- время установки текущего состояния
	verification_state_time timestamp,
-- первичный ключ
	constraint documents_pkey
		primary key (person_id, id),
-- внешний ключ
	constraint documents_doc_type_id_fkey
		foreign key (doc_type_id, doc_subtype_id) references doc_subtype
);

------------------------------------------------------------------------------------------------------------------------
Документы (анкетные данные ОГБД "Ветераны"), doc_ogbd
------------------------------------------------------------------------------------------------------------------------
Содержит составляющую персональных документов гражданина, содержащую анкетные данные ОГБД "Ветераны"
Описание:
create table doc_ogbd
(
-- ид гражданина, которому принадлежит персональный документ (ссылка на таблицу person)
	person_id integer not null,
-- ид персонального документа
	document_id integer not null,
-- способ проживания 0-'одиноко', 1-'отдельно', 2-'в составе семьи'
	family_info smallint not null,
-- Кол-во чл. семьи
	family_members_count smallint,
-- Кол-во иждивенцев
	family_izdiv_count smallint,
-- Признак обеспеченности жильем (0 - не обеспечен, 1 - обеспечен)
	zil_info smallint not null,
-- Дата обеспечения жильем
	zil_date date,
-- Вид жилья 101 - 'Отдельная благоустроенная квартира (Государственный жилищный фонд)',
--           102 - 'Комната в коммунальной квартире (Государственный жилищный фонд)',
--           103 - 'Отдельный дом (часть дома) (Государственный жилищный фонд)',
--           104 - 'Общежитие (Государственный жилищный фонд)',
--           105 - 'Другое (Государственный жилищный фонд)',
--           201 - 'Отдельная благоустроенная квартира (Муниципальный жилищный фонд)',
--           202 - 'Комната в коммунальной квартире (Муниципальный жилищный фонд)',
--           203 - 'Отдельный дом (часть дома) (Муниципальный жилищный фонд)',
--           204 - 'Общежитие (Муниципальный жилищный фонд)',
--           205 - 'Другое (Муниципальный жилищный фонд)',
--           301 - 'Отдельная благоустроенная квартира (Фонд жилищно-строительных кооперативов)',
--           302 - 'Комната в коммунальной квартире (Фонд жилищно-строительных кооперативов)',
--           303 - 'Отдельный дом (часть дома) (Фонд жилищно-строительных кооперативов)',
--           304 - 'Общежитие (Фонд жилищно-строительных кооперативов)',
--           305 - 'Другое (Фонд жилищно-строительных кооперативов)',
--           401 - 'Отдельная благоустроенная квартира (Общественный жилищный фонд)',
--           402 - 'Комната в коммунальной квартире (Общественный жилищный фонд)',
--           403 - 'Отдельный дом (часть дома) (Общественный жилищный фонд)',
--           404 - 'Общежитие (Общественный жилищный фонд)',
--           405 - 'Другое (Общественный жилищный фонд)',
--           501 - 'Отдельная благоустроенная квартира (Приватизированные жилые помещения)',
--           502 - 'Комната в коммунальной квартире (Приватизированные жилые помещения)',
--           503 - 'Отдельный дом (часть дома) (Приватизированные жилые помещения)',
--           504 - 'Общежитие (Приватизированные жилые помещения)',
--           505 - 'Другое (Приватизированные жилые помещения)',
--           601 - 'Отдельная благоустроенная квартира (Индивидуальный жилищный фонд)',
--           602 - 'Комната в коммунальной квартире (Индивидуальный жилищный фонд)',
--           603 - 'Отдельный дом (часть дома) (Индивидуальный жилищный фонд)',
--           604 - 'Общежитие (Индивидуальный жилищный фонд)',
--           605 - 'Другое (Индивидуальный жилищный фонд)'}
	zil_type smallint,
-- жилая площадь
	zil_square numeric(18,2),
--  требуется ли ремонт,   0 - 'ремонт не требуется', 1 - 'требуется ремонт текущий', 2 - 'требуется ремонт капитальный',
--  3 - 'ремонт проведен'
	repair_info smallint not null,
-- дата сведений о проведении ремонта
	repair_date date,
-- наличие телефона 0 - 'не нуждается', 1 - 'нуждается', 2 - 'обеспечен'
	phone_info smallint not null,
-- дата сведений о телефоне
	phone_date date,
-- нуждаемость в топливе 0 - 'не нуждается', 1 - 'нуждается', 2 - 'обеспечен'
	fuel_info smallint not null,
-- дата сведений о топливе
	fuel_date date,
-- вид топлива  1 - 'Дрова', 2 - 'Уголь', 3 - 'Газ', 4 - 'Другое'
	fuel_type smallint,
-- нуждаемость в транспорте 0 - 'не нуждается', 1 - 'нуждается', 2 - 'обеспечен'
	transport_info smallint not null,
-- дата сведений о транспорте
	transport_date date,
-- вид транспорта (тестовое поле)
	transport_type varchar(256),
-- нуждаемость в социальном обслуживании на дому 0 - 'не нуждается', 1 - 'нуждается', 2 - 'обеспечен'
	homeservice_info smallint not null,
-- дата сведений о нуждаемости в социальном обслуживании на дому
	homeservice_date date,
-- вид обслуживания на дому 1 - 'Соц. работник', 2 - 'Патронаж', 3 - 'Опека', 4 - 'Другое'
	homeservice_type smallint,
-- нуждаемость в стационарном социальном обслуживании 0 - 'не нуждается', 1 - 'нуждается', 2 - 'обеспечен'
	usonservice_info smallint not null,
-- дата нуждаемости в стационарном социальном обслуживании
	usonservice_date date,
-- вид стационарного обслуживания 1 - 'Дома-интернаты для пожилых и инвалидов',
--  2 - 'Дома, отделения социального обслуживания временного содержания',
--  3 - 'Дома, отделения социального обслуживания сезонного содержания',
--  4 - 'Специализированные дома для одиноких престарелых',
--  5 - 'Другое',
	usonservice_type smallint,
 -- первичный ключ
	constraint pk_doc_ogbd
		primary key (person_id, document_id),
 -- внешний ключ
	constraint doc_ogbd_person_id_document_id_fk
		foreign key (person_id, document_id) references document
			on update cascade on delete cascade
);

------------------------------------------------------------------------------------------------------------------------
Документы (данные ПФР для назначения РСДП), doc_rsdp
------------------------------------------------------------------------------------------------------------------------
Содержит составляющую персональных документов гражданина, содержащую данные ПФР для назначения РСДП
Описание:
create table doc_rsdp
(
-- ид гражданина, которому принадлежит персональный документ (ссылка на таблицу person)
	person_id integer not null,
-- ид персонального документа
	document_id integer not null,
-- ведомство, одно из значений
-- 1, "Минобороны России (ГРУ, МЧС, Ж/Д войска, Спецстрой)" 2, "МВД России" 3, "ФСБ России (ФСБ, ФСО, СВР, Сл. специальных объектов при Президенте России)"
-- 4, "СВР России" 5, "ФСО России" 6, "ФСИН России" 7, "ФТС России" 8, "Минюст России" 9, "ФСКН России" 10, "Генпрокуратура России"
	vedomstvo integer,
-- дата назначения пенсии с
	pensia_date_from date,
-- дата назначения пенсии по
    pensia_date_to date,
-- дата установления ежемесячного размера пенсии
	pensia_amount_from date,
-- ежемесячный размер пенсии
	pensia_amount numeric(18,2),
-- вид пенсии №1, одно из значений 
-- 1 - '01 - Страховая пенсия по старости'},
-- 2 - '02 - Страховая пенсия по инвалидности'},
-- 3 - '03 - Страховая пенсия по случаю потери кормильца'},
-- 4 - '04 - Социальная пенсия'},
-- 5 - '05 - Пенсия за выслугу лет'},
-- 6 - '06 - Государственная пенсия по старости'},
-- 7 - '07 - Государственная пенсия по инвалидности'},
-- 8 - '08 - Государственная пенсия по случаю потери кормильца'},
-- 9 - '09 - Накопительная пенсия'},
	pensia_type1 integer,
-- вид пенсии №2, тоже, что и для pensia_type1
	pensia_type2 integer,
-- вид пенсии №3, тоже, что и для pensia_type1
	pensia_type3 integer,
-- вид пенсии №4, тоже, что и для pensia_type1
	pensia_type4 integer,
-- дата назначения ЕДВ с
	edv_date_from date,
-- дата назначения ЕДВ по
	edv_date_to date,
-- дата установления ежемесячного размера ЕДВ
	edv_amount_from date,
-- ежемесячный размер ЕДВ
	edv_amount numeric(18,2),
-- дата назначения ДМО с
	dmo_date_from date,
-- дата назначения ДМО по
	dmo_date_to date,
-- дата установления ежемесячного размера ДМО
	dmo_amount_from date,
-- ежемесячный размер ДМО
	dmo_amount numeric(18,2),
-- дата назначения ДЕМО с
	demo_date_from date,
-- дата назначения ДЕМО по
	demo_date_to date,
-- дата установления ежемесячного размера ДЕМО
	demo_amount_from date,
-- ежемесячный размер ДЕМО
	demo_amount numeric(18,2),
-- признак того, что пенсионер работает
	is_working boolean,
-- первичный ключ
	constraint pk_doc_rsdp
		primary key (person_id, document_id),
-- внешний ключ
	constraint doc_rsdp_person_id_document_id_fk
		foreign key (person_id, document_id) references document
			on update cascade on delete cascade
);


------------------------------------------------------------------------------------------------------------------------
Документы (анкентные данные самостоятельности клиентов УСОН), document_independence
------------------------------------------------------------------------------------------------------------------------
Содержит составляющую персональных документов гражданина, содержащую анкентные данные самостоятельности клиентов УСОН
Описание:
create table document_independence
(
-- ид гражданина, которому принадлежит персональный документ (ссылка на таблицу person)
	person_id integer not null,
-- ид персонального документа
	document_id integer not null,
-- вид показателя самостоятельности, ссылка на справочник independence_type, примеры значений:
-- 11 - пользование столовыми приборами
-- 12 - кормление
-- 13 - "застёгивание/растёгивание на одежде пуговиц, ""молний"", др."
-- 14 - одевание обуви
	independence_type_id integer not null
		constraint document_independence_independence_type_id_fk
			references independence_type,
-- признак "Нет проблем"
	problem_none boolean not null,
-- признак "Легкие проблемы"
	problem_little boolean not null,
-- признак "Выраженные проблемы"
	problem_obvious boolean not null,
-- признак "Проведение невозможно"
	problem_impossible boolean not null,
-- первичный ключ
	constraint document_independence_person_id_document_id_independence_type_i
		primary key (person_id, document_id, independence_type_id),
-- внешний ключ
	constraint document_independence_person_id_document_id_fk
		foreign key (person_id, document_id) references document
			on update cascade on delete cascade
);


------------------------------------------------------------------------------------------------------------------------
Документы (данные из документов ЗАГС), document_zags
------------------------------------------------------------------------------------------------------------------------
Содержит составляющую персональных документов гражданина, содержащую сведения из актовых записей гражданского состояния
Описание:
create table document_zags
(
-- ид гражданина, которому принадлежит персональный документ (ссылка на таблицу person)
	person_id integer not null,
-- ид персонального документа
	document_id integer not null,
-- дата актовой записи
	act_date date,
-- номер актовой записи
	act_no varchar(256),
-- страна
	country varchar(256),
-- субъект РФ
	region varchar(256),
-- фамилия
	last_name varchar(256),
-- имя
	first_name varchar(256),
-- отчетство
	middle_name varchar(256),
-- дата рождения
	birth_date date,
-- пол
	gender boolean,
-- страна рождения
	birth_country varchar(256),
-- субъект РФ (или другой страны) рождения
	birth_country_state varchar(256),
-- район субъекта РФ (или другой страны) рождения
	birth_region varchar(256),
-- город рождения
	birth_city varchar(256),
-- населенный пункт рождения
	birth_locality varchar(256),
-- национальность
	birth_nationality varchar(256),
-- адрес
	address varchar(256),
-- фамилия матери или супруги
	fem_last_name varchar(256),
-- имя матери или супруги
	fem_first_name varchar(256),
-- отчество матери или супруги
	fem_middle_name varchar(256),
-- страна рождения матери или супруги
	fem_country varchar(256),
-- национальность матери или супруги
	fem_nationality varchar(256),
-- дата рождения матери или супруги
	fem_birthday date,
-- страна рождения матери или супруги
	fem_birth_country varchar(256),
-- субъект РФ (или другой страны) рождения матери или супруги
	fem_birth_country_state varchar(256),
-- город рождения матери или супруги
	fem_birth_city varchar(256),
-- адрес рождения рождения матери или супруги
	fem_birth_addr varchar(256),
-- предыдущая фамилия супруги
	fem_new_last_name varchar(256),
-- фамилия отца или супруга
	male_last_name varchar(256),
-- имя отца или супруга
	male_first_name varchar(256),
-- отчество отца или супруга
	male_middle_name varchar(256),
-- страна рождения отца или супруга
	male_country varchar(256),
-- национальность отца или супруга
	male_nationality varchar(256),
-- дата рождения отца или супруга
	male_birthday date,
-- страна рождения отца или супруга
	male_birth_country varchar(256),
-- субъект РФ (или другой страны) рождения отца или супруга
	male_birth_country_state varchar(256),
-- город рождения отца или супруга
	male_birth_city varchar(256),
-- адрес рождения рождения отца или супруга
	male_birth_addr varchar(256),
-- предыдущая фамилия отца или супруга
	male_new_last_name varchar(256),
-- дата развода (для свидетельства о разводе)
	divorce_date date,
-- наименования суда (для свидетельства о разводе)
	court varchar(256),
-- дата судебного решения (для свидетельства о разводе)
	court_decision date,
-- адрес рождения
	birth_address varchar(250),
-- страна смерти
	death_country varchar(256),
-- субъект РФ (или другой страны) смерти
	death_country_state varchar(256),
-- район субъекта РФ (или другой страны) смерти
	death_region varchar(256),
-- город субъекта РФ (или другой страны) смерти
	death_city varchar(256),
-- населенный пункт субъекта РФ (или другой страны) смерти
	death_locality varchar(256),
-- дата смерти
	death_date date,
-- номер записи о смерти
	death_record_num varchar(256),
-- дата записи о смерти
	death_record_date date,
-- код органа ЗАГС, сделавшего запись
	zags_code varchar(256),
-- первичный ключ
	constraint pk_document_zags
		primary key (person_id, document_id),
-- внешний ключ
	constraint document_zags_person_id_document_id_fk
		foreign key (person_id, document_id) references document
			on update cascade on delete cascade
);


------------------------------------------------------------------------------------------------------------------------
Состав семьи в обращении гражданина, family_member
------------------------------------------------------------------------------------------------------------------------
Содержит список членов семьи гражданина, учтенный в его обращении
Описание:
create table family_member
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null,
-- ид заявления у гражданина
	request_id integer not null,
-- ид члена семьи (ссылка на таблицу person)
	member_id integer not null
		constraint family_member_person_id_fk
			references person,
-- вид родственной связи (ссылка на таблицу relation_degree), примеры значений:
-- 1 - Заявитель
-- 2 - Сын
-- 3 - Отец
-- 4 - Брат
	relation_degree_id integer not null
		constraint family_member_relation_degree_id_fk
			references relation_degree,
-- признак того, что гражданин не входит в состав семьи, а указан просто для того, чтобы учесть его доходы или по другим причинам
	only_for_incomings boolean default false not null,
-- первичный ключ
	constraint family_member_person_id_request_id_member_id_pk
		primary key (person_id, request_id, member_id),
-- внешний ключ
	constraint family_member_request_person_id_id_fk
		foreign key (person_id, request_id) references request
			on update cascade
);


------------------------------------------------------------------------------------------------------------------------
Доходы членов семьи в обращении гражданина, family_member_incoming
------------------------------------------------------------------------------------------------------------------------
Содержит список доходов членов семьи гражданина, учтенный в его обращении. Доходы храняться "пачками" не более чем за
12 месяцев, предшествующих месяцу обращения
Описание:
create table family_member_incoming
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null,
-- ид заявления у гражданина
	request_id integer not null,
-- ид члена семьи (ссылка на таблицу person)
	member_id integer not null
		constraint family_member_incoming_person_id_fk
			references person,
-- вид дохода (ссылка на таблицу incoming_type), примеры значений:
-- 1 - Зарплата
-- 2 - Пенсия
-- 3 - Стипендия
	incoming_type_id integer not null
		constraint family_member_incoming_type_id_fk
			references incoming_type,
-- сумма дохода за 1-й месяц
	amount1 numeric(18,2),
-- сумма дохода за 2-й месяц
	amount2 numeric(18,2),
-- сумма дохода за 3-й месяц
	amount3 numeric(18,2),
-- сумма дохода за 4-й месяц
	amount4 numeric(18,2),
-- сумма дохода за 5-й месяц
	amount5 numeric(18,2),
-- сумма дохода за 6-й месяц
	amount6 numeric(18,2),
-- сумма дохода за 7-й месяц
	amount7 numeric(18,2),
-- сумма дохода за 8-й месяц
	amount8 numeric(18,2),
-- сумма дохода за 9-й месяц
	amount9 numeric(18,2),
-- сумма дохода за 10-й месяц
	amount10 numeric(18,2),
-- сумма дохода за 11-й месяц
	amount11 numeric(18,2),
-- сумма дохода за 12-й месяц
	amount12 numeric(18,2),
-- первичный ключ
	constraint family_member_incoming_person_id_request_id_member_id_pk
		primary key (person_id, request_id, member_id, incoming_type_id),
-- внешний ключ
	constraint family_member_request_person_id_id_fk
		foreign key (person_id, request_id, member_id) references family_member
			on update cascade
);


------------------------------------------------------------------------------------------------------------------------
ИПРА гражданина, ipra
------------------------------------------------------------------------------------------------------------------------
Содержит выписки из ИПРА для гражданина, получаемые из МСЭ.
Описание:
create table ipra
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null
		constraint ipra_person_id_person_fk
			references person,
-- ид ИПРА
	id serial not null,
-- УИД ИПРА в МСЭ
	mse_ouid uuid,
-- дата ИПРА
	a_date date,
-- номер ипра
	a_number varchar(255),
-- список ссылок на файлы, прикрепленные к ИПРА в файловом хранилище
	files varchar,
-- дата разработки мероприятий социальной реабилитации в органах соцзащиты
	a_events_date date,
-- назначенный уполномоченный орган по социальной реабилизации
	institution_id integer
		constraint ipra_institution_id_institution_fk
			references institution,
-- далее идет миллион полей, по названиям и семантике практически полностью соответствующих сведениям, получаемым в XML из МСЭ,
-- эти сведения, их версии, описаны на сайте МСЭ, вот тут: http://fbmse.ru/interaction/ipra/
	a_notification_date date,
	a_reject_date date,
	a_protocol_date date,
	a_buro varchar(255),
	a_for_child boolean,
	a_first boolean,
	a_date_to date,
	restriction_selfcare integer,
	restriction_moving integer,
	restriction_orientation integer,
	restriction_communication integer,
	restriction_learn integer,
	restriction_work integer,
	restriction_behaviorcontrol integer,
	event_culture_need boolean,
	event_culture_from date,
	event_culture_to date,
	event_culture_executor varchar(255),
	event_domes_need boolean,
	event_domes_from date,
	event_domes_to date,
	event_domes_executor varchar(255),
	event_enviro_need boolean,
	event_enviro_from date,
	event_enviro_to date,
	event_enviro_executor varchar(255),
	event_psy_need boolean,
	event_psy_from date,
	event_psy_to date,
	event_psy_executor varchar(255),
	house_facilities varchar,
	prognoz_selfservice integer,
	prognoz_commonactivitiesrecovery integer,
	prognoz_commonactivitiescreation integer,
	prognoz_socstatus integer,
	helpitem_51 boolean,
	helpitem_52 boolean,
	helpitem_53 boolean,
	helpitem_50 boolean,
	helpitem_54 boolean,
	helpitem_other varchar,
	signator varchar(255),
	a_protocol_number varchar(255),
	a_representative_text varchar,
	a_tsr_list varchar,
	a_tsr_list_transport varchar,
	a_tsr_list_local varchar,
	a_tsr_list_local_transport varchar,
	a_address_text varchar(255),
	a_event_culture_res51 integer,
	a_event_culture_res51_date date,
	a_event_enviro_res37 integer,
	a_event_enviro_res37_date date,
	a_event_enviro_res38 integer,
	a_event_enviro_res38_date date,
	a_event_enviro_res39 integer,
	a_event_enviro_res39_date date,
	a_event_psy_res40 integer,
	a_event_psy_res40_date date,
	a_event_psy_res41 integer,
	a_event_psy_res41_date date,
	a_event_psy_res42 integer,
	a_event_psy_res42_date date,
	a_event_psy_res43 integer,
	a_event_psy_res43_date date,
	a_event_psy_res44 integer,
	a_event_psy_res44_date date,
	a_event_culture_res52 integer,
	a_event_culture_res52_date date,
	a_event_peda_res45 integer,
	a_event_peda_res45_date date,
	a_event_peda_res46 integer,
	a_event_peda_res46_date date,
	a_event_peda_res47 integer,
	a_event_peda_res47_date date,
	a_event_peda_res48 integer,
	a_event_peda_res48_date date,
	a_event_peda_res49 integer,
	a_event_peda_res49_date date,
	a_event_peda_res50 integer,
	a_event_peda_res50_date date,
	a_event_domes_res53 integer,
	a_event_domes_res53_date date,
	a_event_domes_res54 integer,
	a_event_domes_res54_date date,
	a_potr_nugd_ipr integer,
	a_work integer,
	a_learning integer,
	a_behavior_control integer,
	a_communikate integer,
	a_orientate integer,
	a_movelndependently integer,
	a_floor_of_living integer,
	a_primery_profession varchar(255),
	a_not_work_years integer,
	a_employment_orientation_exists boolean,
	a_is_registered_emploument_servise boolean,
	a_disability_group_date date,
	a_soc_house_recommendations varchar,
	a_need_house_for_wheel_chair boolean,
	a_is_self_service_possible boolean,
	a_need_house_tools_bad_hearing boolean,
	a_need_house_tools_bad_vision boolean,
	a_need_house_tools_for_other_deseases boolean,
	a_decision_date date,
	a_set_org_name varchar(255),
	a_rehab_potential integer,
	a_rehab_prognoz integer,
	a_grup_invalid integer,
	a_is_disability_group_primary integer,
	a_vision integer,
	a_hearing integer,
	a_vision_and_hearing integer,
	a_uppe_limbs integer,
	a_bottom_limbs integer,
	a_wheel_chair integer,
	a_intellect integer,
	a_lingual integer,
	a_blood_circulation integer,
	a_breath integer,
	a_digestive integer,
	a_metabolism integer,
	a_blood_and_immune integer,
	a_excretory integer,
	a_skin integer,
	a_phusical_dysfunction integer,
	a_func_compensation integer,
	a_func_recovery integer,
	a_tsr_items_regional varchar,
	a_tsr_items_own_money varchar,
	helpitem_139 boolean,
	helpitem_138 boolean,
	helpitem_137 boolean,
	helpitem_142 boolean,
	helpitem_145 boolean,
	helpitem_143 boolean,
	helpitem_146 boolean,
	helpitem_140 boolean,
	helpitem_141 boolean,
	helpitem_144 boolean,
	representative_id integer
		constraint ipra_representative_id_fk
			references person,
	a_event_culture_res51_reason varchar(128),
	a_event_enviro_res37_reason varchar(128),
	a_event_enviro_res38_reason varchar(128),
	a_event_enviro_res39_reason varchar(128),
	a_event_psy_res40_reason varchar(128),
	a_event_psy_res41_reason varchar(128),
	a_event_psy_res42_reason varchar(128),
	a_event_psy_res43_reason varchar(128),
	a_event_psy_res44_reason varchar(128),
	a_event_culture_res52_reason varchar(128),
	a_event_peda_res45_reason varchar(128),
	a_event_peda_res46_reason varchar(128),
	a_event_peda_res47_reason varchar(128),
	a_event_peda_res48_reason varchar(128),
	a_event_peda_res49_reason varchar(128),
	a_event_peda_res50_reason varchar(128),
	a_event_domes_res53_reason varchar(128),
	a_event_domes_res54_reason varchar(128),
	a_event_living_res55 integer,
	a_event_living_res55_date date,
	a_event_living_res55_reason varchar(128),
	a_event_living_res56 integer,
	a_event_living_res56_date date,
	a_event_living_res56_reason varchar(128),
	a_event_living_res57 integer,
	a_event_living_res57_date date,
	a_event_living_res57_reason varchar(128),
	a_event_living_res58 integer,
	a_event_living_res58_date date,
	a_event_living_res58_reason varchar(128),
	edu_institution_id integer
		constraint ipra_edu_institution_id_institution_fk
			references institution,
	edu_event_pro_recommend_need boolean,
	edu_event_pro_recommend_from date,
	edu_event_pro_recommend_to date,
	edu_event_pro_recommend_executor varchar(255),
	edu_event_psy_recommend_need boolean,
	edu_event_psy_recommend_from date,
	edu_event_psy_recommend_to date,
	edu_event_psy_recommend_executor varchar(255),
	edu_event_cond_res31 integer,
	edu_event_cond_res31_date date,
	edu_event_cond31_reason varchar(128),
	edu_event_cond_res32 integer,
	edu_event_cond_res32_date date,
	edu_event_cond32_reason varchar(128),
	edu_event_cond_res33 integer,
	edu_event_cond_res33_date date,
	edu_event_cond_res33_reason varchar(128),
	edu_event_psy_res34 integer,
	edu_event_psy_res34_date date,
	edu_event_psy_res34_reason varchar(128),
	edu_event_psy_res35 integer,
	edu_event_psy_res35_date date,
	edu_event_psy_res35_reason varchar(128),
	edu_event_psy_res36 integer,
	edu_event_psy_res36_date date,
	edu_event_psy_res36_reason varchar(128),
	sport_institution_id integer
		constraint ipra_sport_institution_id_institution_fk
			references institution,
	sport_event_inform_need boolean,
	sport_event_inform_from date,
	sport_event_inform_to date,
	sport_event_inform_executor varchar(255),
	sport_event_res59 integer,
	sport_event_res59_date date,
	sport_event_res59_reason varchar(128),
	sport_event_res60 integer,
	sport_event_res60_date date,
	sport_event_res60_reason varchar(128),
	prof_institution_id integer
		constraint ipra_prof_institution_id_institution_fk
			references institution,
	prof_event_orient_need boolean,
	prof_event_orient_from date,
	prof_event_orient_to date,
	prof_event_orient_executor varchar(255),
	prof_event_employ_need boolean,
	prof_event_employ_from date,
	prof_event_employ_to date,
	prof_event_employ_executor varchar(255),
	prof_employment_service_info_date date,
	prof_employment_service_help_agree boolean,
	prof_work_place_recom_bad_vision varchar,
	prof_work_place_recom_bad_hearing varchar,
	prof_work_place_recom_bad_vision_hearing varchar,
	prof_work_place_recom_wheel_chair varchar,
	prof_work_place_recom_other varchar,
	prof_need_special_work_place_recom boolean,
	prof_need_soc_psych_adaptation boolean,
	prof_need_soc_prod_adaptation boolean,
	prof_conditions_long_breaks boolean,
	prof_conditions_optimal boolean,
	prof_conditions_any boolean,
	prof_conditions_with_help boolean,
	prof_event_orient_res5 integer,
	prof_event_orient_res5_date date,
	prof_event_orient_res5_reason varchar(128),
	prof_event_orient_res6 integer,
	prof_event_orient_res6_date date,
	prof_event_orient_res6_reason varchar(128),
	prof_event_orient_res7 integer,
	prof_event_orient_res7_date date,
	prof_event_orient_res7_reason varchar(128),
	prof_event_orient_res8 integer,
	prof_event_orient_res8_date date,
	prof_event_orient_res8_reason varchar(128),
	prof_event_orient_res9 integer,
	prof_event_orient_res9_date date,
	prof_event_orient_res9_reason varchar(128),
	prof_event_edu_res10 integer,
	prof_event_edu_res10_date date,
	prof_event_edu_res10_reason varchar(128),
	prof_event_edu_res11 integer,
	prof_event_edu_res11_date date,
	prof_event_edu_res11_reason varchar(128),
	prof_event_edu_res12 integer,
	prof_event_edu_res12_date date,
	prof_event_edu_res12_reason varchar(128),
	prof_event_edu_cond_res13 integer,
	prof_event_edu_cond_res13_date date,
	prof_event_edu_cond_res13_reason varchar(128),
	prof_event_edu_cond_res14 integer,
	prof_event_edu_cond_res14_date date,
	prof_event_edu_cond_res14_reason varchar(128),
	prof_event_edu_cond_res15 integer,
	prof_event_edu_cond_res15_date date,
	prof_event_edu_cond_res15_reason varchar(128),
	prof_event_edu_cond_res16 integer,
	prof_event_edu_cond_res16_date date,
	prof_event_edu_cond_res16_reason varchar(128),
	prof_event_edu_cond_res17 integer,
	prof_event_edu_cond_res17_date date,
	prof_event_edu_cond_res17_reason varchar(128),
	prof_event_edu_cond_res18 integer,
	prof_event_edu_cond_res18_date date,
	prof_event_edu_cond_res18_reason varchar(128),
	prof_event_edu_cond_res19 integer,
	prof_event_edu_cond_res19_date date,
	prof_event_edu_cond_res19_reason varchar(128),
	prof_event_employ_res20 integer,
	prof_event_employ_res20_date date,
	prof_event_employ_res20_reason varchar(128),
	prof_event_employ_cond_res21 integer,
	prof_event_employ_cond_res21_date date,
	prof_event_employ_cond_res21_reason varchar(128),
	prof_event_employ_cond_res22 integer,
	prof_event_employ_cond_res22_date date,
	prof_event_employ_cond_res22_reason varchar(128),
	prof_event_adapt_res23 integer,
	prof_event_adapt_res23_date date,
	prof_event_adapt_res23_reason varchar(128),
	prof_event_adapt_res24 integer,
	prof_event_adapt_res24_date date,
	prof_event_adapt_res24_reason varchar(128),
	prof_event_equip_res25 integer,
	prof_event_equip_res25_date date,
	prof_event_equip_res25_reason varchar(128),
	prof_event_equip_res26 integer,
	prof_event_equip_res26_date date,
	prof_event_equip_res26_reason varchar(128),
	prof_event_equip_res27 integer,
	prof_event_equip_res27_date date,
	prof_event_equip_res27_reason varchar(128),
	prof_event_equip_res28 integer,
	prof_event_equip_res28_date date,
	prof_event_equip_res28_reason varchar(128),
	prof_event_equip_res29 integer,
	prof_event_equip_res29_date date,
	prof_event_equip_res29_reason varchar(128),
	prof_event_equip_res30 integer,
	prof_event_equip_res30_date date,
	prof_event_equip_res30_reason varchar(128),
	med_institution_id integer
		constraint ipra_med_institution_id_institution_fk
			references institution,
	med_event_rehab_need boolean,
	med_event_rehab_from date,
	med_event_rehab_to date,
	med_event_rehab_executor varchar(255),
	med_event_reconstr_need boolean,
	med_event_reconstr_from date,
	med_event_reconstr_to date,
	med_event_reconstr_executor varchar(255),
	med_event_prosthesis_need boolean,
	med_event_prosthesis_from date,
	med_event_prosthesis_to date,
	med_event_prosthesis_executor varchar(255),
	med_event_resort_need boolean,
	med_event_resort_from date,
	med_event_resort_to date,
	med_event_resort_executor varchar(255),
	med_sender_med_org_name varchar(255),
	med_event_rehab_res1 integer,
	med_event_rehab_res1_date date,
	med_event_rehab_res1_reason varchar(128),
	med_event_rehab_res2 integer,
	med_event_rehab_res2_date date,
	med_event_rehab_res2_reason varchar(128),
	med_event_rehab_res3 integer,
	med_event_rehab_res3_date date,
	med_event_rehab_res3_reason varchar(128),
	med_event_rehab_res4 integer,
	med_event_rehab_res4_date date,
	med_event_rehab_res4_reason varchar(128),
	med_event_surgery_res varchar,
	med_event_prosthesis_res varchar,
	goal_ids varchar,
	edu_goal_ids varchar,
	sport_goal_ids varchar,
	med_goal_ids varchar,
	prof_goal_ids varchar,
	edu_events_date date,
	edu_notification_date date,
	edu_reject_date date,
	edu_files varchar,
	med_events_date date,
	med_notification_date date,
	med_reject_date date,
	med_files varchar,
	prof_events_date date,
	prof_notification_date date,
	prof_reject_date date,
	prof_files varchar,
	sport_events_date date,
	sport_notification_date date,
	sport_reject_date date,
	sport_files varchar,
	mse_sync_info varchar,
	a_dysfunction_digestive integer,
	a_dysfunction_excretory integer,
	a_dysfunction_respiratory integer,
	a_details_adjustable_ipra varchar(512),
	a_palliative_care_needed boolean default false not null,
	a_needs_extra_breaks boolean default false not null,
	a_optimal_working_conditions boolean default false not null,
	a_any_envir_but_with_difficulties boolean default false not null,
	a_with_assistance_from_others boolean default false not null,
	a_vision_text varchar(512),
	a_hearing_text varchar(512),
	a_vision_and_hearing_text varchar(512),
	a_uppe_limbs_text varchar(512),
	a_bottom_limbs_text varchar(512),
	a_wheel_chair_text varchar(512),
	a_intellect_text varchar(512),
	a_lingual_text varchar(512),
	a_blood_circulation_text varchar(512),
	a_breath_text varchar(512),
	a_digestive_text varchar(512),
	a_metabolism_text varchar(512),
	a_blood_and_immune_text varchar(512),
	a_excretory_text varchar(512),
	a_skin_text varchar(512),
	a_dysfunction_digestive_text varchar(512),
	a_dysfunction_excretory_text varchar(512),
	a_dysfunction_respiratory_text varchar(512),
	constraint ipra_pkey
		primary key (person_id, id)
);


------------------------------------------------------------------------------------------------------------------------
Приказы о назначении пособий, order
------------------------------------------------------------------------------------------------------------------------
Содержит общую информацию о приказах о назначении пособий, подготавливаемых автоматически средствами ППО АСОИ.
Описание:
create table "order"
(
-- ид приказа
	id serial not null,
-- дата приказа
	date date not null,
-- номенклатурный код приказа
	nm_code varchar(256) not null,
-- уникальный номер приказа, сформированный в соответствии с номенклатурой
	nm_no integer not null,
-- группа приказов (ссылка на таблицу order_group), примеры значений:
-- 1 - Приказы по детским пособиям
-- 2 - Приказы по химиотерапии
-- 3 - Приказы по ремонту ветеранам ВОВ
	order_group_id smallint not null
		constraint order_order_group_id_fkey
			references order_group,
-- вид приказа (ссылка на таблицу order_type), примеры значений:
-- 1 - О назначении пособий/выдаче удостоверений
-- 2 - О приостановлении/прекращении/возобновлении
-- 3 - О внесении изменений/возврате/иное
	order_type_id smallint not null
		constraint order_order_type_id_fkey
			references order_type,
-- статус приказа, одно из значений:
-- 0 - проект приказа
-- 1 - защищенный приказ (нельзя пополнять)
-- 2 - утвержденный приказ
	state smallint not null,
-- количество ссылок на приказ
	references_count integer not null,
-- время создлания
	created_time timestamp,
-- создатель приказа
	created_user_id integer,
-- кто утвердил (подписал) приказ
	stator varchar(256),
-- должность того, кто утвердил (подписал) приказ
	stator_post varchar(256),
-- версия приказа (для оптимистичной блокировки)
	version integer not null,
-- учреждение, создавшее приказ (ссылка на справочник учреждение institution)
	institution_id integer
		constraint order_institution_id_fkey
			references institution,
-- первичный ключ
	constraint order_pkey
		primary key (id, date),
-- внешний ключ
	constraint order_number_unique
		unique (nm_code, nm_no)
);


------------------------------------------------------------------------------------------------------------------------
Выплатной документ, payment_document
------------------------------------------------------------------------------------------------------------------------
Содержит общую информацию о выплатном документе (выплаты мер социальной поддержки гражданам на почту, в банк, иное),
подготавливаемых автоматически средствами ППО АСОИ.
Описание:
create table payment_document
(
-- ид выплатного документа
	id serial not null
		constraint payment_document_pkey
			primary key,
-- дата выплатного документа (дата закрытия выплат, попавших в выплатной документ)
	date_payment date not null,
-- направление выплат, одно из значений:
-- 1 - банк
-- 2 - Почта (на дом, по адресу прописки)
-- 3 - Почта (на дом, по адресу фактического проживания)
-- 4 - Почта (касса, по адресу прописки)
-- 5 - Почта (касса, по адресу фактического проживания)
-- 6 - Касса органа социальной защиты населения
-- 7 - Квитанция на возврат средств
-- 8 - Обеспечение в натуральной форме
-- 9 - Платежное поручение
-- 10 - Почта (на дом, по адресу пребывания)
-- 11 - Почта (касса, по адресу пребывания)
	payreq_direction smallint,
-- ид банка, в который направлена выплата (ссылка на справочник bank)
	payreq_bank_id integer
		constraint payment_document_payreq_bank_id_fkey
			references bank
				on update cascade,
-- ид почтового отделения, в который направлена выплата (ссылка на справочник postal_office)
	payreq_post_id integer
		constraint payment_document_payreq_post_id_fkey
			references postal_office
				on update cascade,
-- общее количество выплат в выплатном документе
	total_count integer,
-- общая сумма выплат в выплатном документе
	total_amount numeric(20,4),
-- дата создания проекта выплатного документа
	date_created date,
-- даты фактической отправки на выплату
	date_released date,
-- дата платежного поручения (в АИС Бюджет, АИС СУФД в зависимости от уровня бюджета)
	payorder_date date,
-- номер платежного поручения (в АИС Бюджет, АИС СУФД в зависимости от уровня бюджета)
	payorder_no varchar(256),
-- текстовые комментарии к документу
	comment varchar(256),
-- версия выплатного документа (для оптимистичной блокировки)
	version bigint not null,
-- номер выптаного документа для отображения
	number integer,
	asoi_unique_id varchar(255),
-- первичный ключ
	constraint payment_document_number_unique
		unique (date_payment, number)
);


------------------------------------------------------------------------------------------------------------------------
Гражданин, person
------------------------------------------------------------------------------------------------------------------------
Содержит общую информацию о гражданине, учтенном в ППО АСОИ
Описание:
create table person
(
-- ид гражданина
	id serial not null
		constraint people_pkey
			primary key,
-- актуальная фамилия гражданина
	last_name varchar(256) not null,
-- актуальное имя гражданина
	first_name varchar(256) not null,
-- актуальное отчество гражданина
	middle_name varchar(256),
-- актуальная дата рождения гражданина
	birth_date date,
-- актуальный адрес гражданина (ссылка на таблицу адрес)
	address integer
		constraint people_address_fkey
			references address,
-- не используется
	documents_hash integer,
-- дата создания карточки гражданина
	created_time timestamp not null,
-- пользователь - создатель карточки гражданина
	created_user integer not null,
-- номер карточки гражданина в предыдущей системе (ППО АСОИ версии до 2013 года)
	asoi_card_number varchar,
-- уникальный UUID гражданина
	uid uuid not null,
-- дата архивирования карточки
	deleted_date date,
-- причина архивирования карточки, одно из значений:
-- 1 - Выезд за пределы субъекта РФ
-- 2 - Смерть
	deleted_reason smallint,
-- архивировавший карточку пользователь
	deleted_user integer,
-- версия записи (для опитмистичной блокировки)
	version bigint default 0 not null,
-- ид гражданина
	snils bigint
);


------------------------------------------------------------------------------------------------------------------------
Доп. текстовая информация по гражданину (заметки), person_note
------------------------------------------------------------------------------------------------------------------------
Содержит дополнительную текстовую информацию по гражданину (заметки), учтенному в ППО АСОИ
Описание:
create table person_note
(
-- ид гражданина, которому принадлежит заметка (ссылка на таблицу person)
	person_id integer not null
		constraint person_note_person_id_fk
			references person,
-- ид заметки
	id serial not null,
-- вид заметки (ссылка на справочник note_type), примероы значений:
-- 1 - Номер(а) телефона
-- 2 - Примечания
-- 13 - Модель транспортного средства
-- 14 - Идентификатор Роструда по пост. 142
-- 15 - Идентификатор Роструда по пост. 475
	note_type_id integer not null
		constraint person_note_note_type_id_fk
			references note_type,
-- текст заметки
	text varchar not null,
-- первичный ключ
	constraint person_note_person_id_id_pk
		primary key (person_id, id)
);

------------------------------------------------------------------------------------------------------------------------
Факт обращения гражданина в органы социальной защиты, request
------------------------------------------------------------------------------------------------------------------------
Основная таблица, содежащая общую информацию о фактах обращений граждан в органы соцзащиты во всех формах, в том числе и
опосредовано, беззаявительно, из других органов власти в отношении заявителя
Описание:
create table request
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null
		constraint people_requests_people_id_fkey
			references person,
-- ид обрашения гражданина
	id serial not null,
-- время обращения
	request_time timestamp not null,
-- время создания обращения
	created_time timestamp not null,
-- создавший пользователь
	created_user integer not null,
-- время обновления решения по заявлению
	decision_updated_time timestamp,
-- обновивший решение пользователь
	decision_updated_user integer,
-- вид обращения, ссылка на справочник request_type, примеры значений:
-- 101 - Пособие по беременности и родам
-- 102 - "Единовр. пособие женщинам, вставшим на учет в медучреждениях в ранние сроки беременности (Тематика заявления)"
-- 103 - Единовр. пособие при рождении ребенка (Тематика заявления)
	request_type_id smallint not null
		constraint request_request_type_id_fk
			references request_type,
-- способ обращения, ссылка на справочник request_way, примеры значений:
-- 1 - Личное обращение
-- 2 - По почте
-- 3 - Через ЕПГУ
-- 4 - Через МФЦ
	request_way_id smallint not null
		constraint request_request_way_id_fk
			references request_way,
-- на кого подано заявление (например, родитель подает заявление на ребенка), ссылка на таблицу person
	target_person_id integer
		constraint people_requests_target_people_id_fkey
			references person,
-- дата решения по заявлению
	decision_date date,
-- вид решения, ссылка на таблицу decision_type, примеры значений:
-- 1 - Удовлетворено
-- 2 - Отказано
-- 3 - Может быть рассмотрено положительно
	decision_type_id smallint,
-- резолюция в решении по заявлению текстом
	decision_text varchar(1024),
-- ид приказа, в котором учтено решение по данному заявлению (ссылка на таблицу order)
	order_id integer,
-- отношение заявителя к тому, на кого назначено, одно из значений
-- 1 - Родитель
-- 2 - Опекун, законный представитель
-- 3 - Иной родственник
	requestor_kind smallint,
-- получатель выплаты (тот, на кого будут сформированы выплатные документы), ссылка на таблицу person
	payreq_person_id integer
		constraint people_requests_payreq_people_id_fkey
			references person,
-- направление выплат, одно из значений:
-- 1 - банк
-- 2 - Почта (на дом, по адресу прописки)
-- 3 - Почта (на дом, по адресу фактического проживания)
-- 4 - Почта (касса, по адресу прописки)
-- 5 - Почта (касса, по адресу фактического проживания)
-- 6 - Касса органа социальной защиты населения
-- 7 - Квитанция на возврат средств
-- 8 - Обеспечение в натуральной форме
-- 9 - Платежное поручение
-- 10 - Почта (на дом, по адресу пребывания)
-- 11 - Почта (касса, по адресу пребывания)
	payreq_direction smallint,
-- ид банка, в который направлена выплата (ссылка на справочник bank)
	payreq_bank_id integer
		constraint people_requests_payreq_bank_id_fkey
			references bank,
-- номер банковского счета, куда выплачивать
	payreq_bank_account numeric(20),
-- признак аннулирования обращения (удаления)
	is_deleted boolean not null,
-- не используется
	decision_no integer,
-- характер обращения, ссылка на справочник request_reason, примеры значений
-- 0 - Заявление
-- 1 - Консультация (наличие права)
-- 6 - Уточнение данных
	request_reason_id smallint not null
		constraint request_request_reason_id_fk
			references request_reason,
-- временно не используется
	request_subject_id smallint,
-- временно не используется
	date_notify date,
-- временно не используется
	date_satisfy date,
-- временно не используется
	date_cancel date,
-- временно не используется
	cancel_reason_id smallint,
-- временно не используется
	amount_satisfy numeric(18,4),
-- временно не используется
	region_id smallint
		constraint people_requests_region_id_fkey
			references addr_region,
-- работник, у которого вработе находится заявление
	working_user integer,
-- количество дополнительных рабочих дней, выделенных на обработку заявления
	bonus_working_days smallint,
-- текстовый примечания к заявлению
	comment varchar,
-- временно не используется
	request_subject_quantity smallint,
-- номер карточки в банке, на которую производить выплату
	payreq_bank_card_number numeric(19),
-- номер заявления на ЕПГУ
	epgu_order_id bigint,
-- причина нуждаемости, ссылка на справочник service_need_reason, примеры значений:
-- 5 - "Наличие ребенка или детей (в том числе находящихся под опекой, попечительством), испытывающих трудности в социальной адаптации"
-- 6 - "Отсутствие возможности обеспечения ухода (в том числе временного) за инвалидом, ребенком, детьми, а также отсутствие попечения над ними"
-- 7 - "Отсутствие определенного места жительства, в том числе у лица, не достигшего возраста двадцати трех лет и завершившего пребывание в организации для детей-сирот и детей, оставшихся без попечения родителей"
	service_need_reason_id integer
		constraint request_service_need_reason_id_fk
			references service_need_reason,
-- дата освобождения заявителя из мест лишения свободы
	date_jail_retirement date,
-- учреждение, в которое подано заявление
	institution_id integer not null
		constraint request_institution_id_fk
			references institution,
-- дата начала действия договора (меры), для удовлетворенных заявлений
	date_from date,
-- дата окончания действия договора (меры), для удовлетворенных заявлений (не включительно)
	date_to date,
-- уникальный номер решения по заявлению в пределах установленной номенклатуры
	nm_decision_no integer,
-- номенклатурный код решения по заявлению
	nm_decision_code varchar(20),
-- уникальный номер заявления в пределах установленной номенклатуры
	nm_request_no integer,
-- номенклатурный код заявления
	nm_request_code varchar(20),
-- время создания решения по заявлению
	decision_created_time timestamp,
-- причина нуждаемости №2, аналогично service_need_reason_id
	service_need_reason_id2 integer,
-- причина нуждаемости №3, аналогично service_need_reason_id
	service_need_reason_id3 integer,
-- причина закрытия заявления
	close_reason_id integer,
-- дата закрытия заявления
	close_reason_date date,
-- дата реализуемой ИПРА заявителя
	ipr_date date,
-- номер реализуемой ИПРА заявителя
	ipr_no varchar(256),
-- дата реализуемой ПСА заявителя
	psa_date date,
-- номер реализуемой ПСА заявителя
	psa_no varchar(256),
-- признак приоритетной постановки в очередь (впереди всех, у кого нет приоритета "вне очереди", например ветеранов ВОВ и т.п.)
	queue_first_priority boolean default false not null,
-- ссылка на файлы в файловом хранилище, пркрепленные к данному заявлению
	files varchar,
-- ид основного заявления (ссылка на эту же таблицу), в случае если текущее заявление - дополнение
	main_request_id integer,
-- форма социального обслуживания (для заявлений на оказание социальных услуг), внешняя ссылка на справочник service_form, примеры значений:
-- 1 - Полустационарное социальное обслуживание
-- 2 - Социальное обслуживание на дому
-- 3 - Срочное социальное обслуживание
-- 4 - Стационарное социальное обслуживание
	service_form_id smallint
		constraint service_form_id_fk
			references service_form,
-- назначенная мера социальной поддержки (для заявлений на выплату МСП), внешняя ссылка на справочник msp_type, примеры значений:
-- 1 - ЕДВ (Ветераны труда)
-- 2 - ЕДВ (Ветераны труда ХМАО)
-- 3 - ЕДВ (Гражд. постр. от полит. репрессий)
	msp_type_id integer
		constraint msp_type_id_fk
			references msp_type,
-- использованная типовая программа предоставления социальных услуг (для заявлений на оказание социальных услуг), внешняя ссылка на справочник ippsu_template, примеры значений:
--  5 - "1.005 Утрата способн. к самообсл. и нужд. в ежед. постор. уходе (пожилые, один. инвалиды, без центр. отопл., на дому)"
--  6 - "1.006 Утрата способн. к самообсл. и нужд. в ежед. постор. уходе (пожилые, один. инвалиды, с центр. отопл., на дому)"
--  7 - "1.007 Утрата способн. к самообсл. и нужд. в ежед. постор. уходе (пожилые, инвалиды, прож. в семьях, на дому)"
	ippsu_template_id integer
		constraint ippsu_template_id_fk
			references ippsu_template,
-- форма социального обслуживания №2, аналогично service_form_id
	service_form_id2 integer
		constraint service_form_id2_fk
			references service_form,
-- ид заявления на адаптере межведомственного взаимодействия
	main_adapter_id integer,
-- системная информация по синхронизации данных в заявлении с ЕГИССО
	egisso_sync_info varchar,
-- версия записи (для оптимистичной блокировки)
	version bigint default 0 not null,
-- установленный максимально возможный процент удержания (для обращений за МСП)
	max_checkoff_percent numeric(20,4),
-- номер реализуемого социального контракта (вместе с датой и ид гражданина - ссылка на таблицу soc_contract)
	soc_contract_no varchar(32),
-- дата реализуемого социального контракта (вместе с номером и ид гражданина - ссылка на таблицу soc_contract)
	soc_contract_date date,
-- не используется
	payments_state smallint,
-- ид приказа, содержащего решение о закрытии заявления
	close_decision_order_id integer,
-- дата принятия решения о закрытии заявления
	close_decision_date date,
-- для конвертации из ППО АСОИ версии 2013 года
	asoi_unique_id varchar(255),
-- уникальный номенклатурный номер решения о закрытии заявления
	nm_close_decision_no integer,
-- номенклатурный код решения о закрытии заявления
	nm_close_decision_code varchar(20),
-- время создания решения о закрытии заявления
	close_decision_created_time timestamp,
-- законный представитель заявителя (если обращается он от лица заявителя) (ссылка на таблицу person)
	representative_person_id integer,
-- первичный ключ
	constraint people_requests_pkey
		primary key (person_id, id),
-- уникальный ключ
	constraint request_close_decision_no_unique
		unique (nm_close_decision_code, nm_close_decision_no),
-- внешний ключ
	constraint main_request_id_fk
		foreign key (person_id, main_request_id) references request,
-- внешний ключ
	constraint request_soc_contract_fk
		foreign key (person_id, soc_contract_no, soc_contract_date) references soc_contract,
-- внешний ключ
	constraint request_order_id_decision_date_fkey
		foreign key (order_id, decision_date) references "order",
-- внешний ключ
	constraint request_close_order_id_decision_date_fkey
		foreign key (close_decision_order_id, close_decision_date) references "order"
);


------------------------------------------------------------------------------------------------------------------------
График выплат/оплат по заявлению (назначенные размеры), request
------------------------------------------------------------------------------------------------------------------------
Содежит информацию о размерах выплат/оплат по заявлению (назначенные размеры) за весь срок действия заявления
Описание:
create table request_amount
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null,
-- ид обрашения гражданина
	request_id integer not null,
-- дата начала действия установленного размера выплаты
	date_from date not null,
-- способ начислениния (вид установленной суммы). Возможноые значения: 1 - помесячно, 2 - единовременно
	charge_way smallint not null,
-- установленный размер выплаты
	amount numeric(18,2) not null,
-- текстовое или структурированое описание расчета установленного размера выплаты
	calculation jsonb,
-- первичный ключ
	constraint request_amount_pkey
		primary key (person_id, request_id, date_from),
-- внешний ключ
	constraint request_amount_person_request_id_fkey
		foreign key (person_id, request_id) references request
			on update cascade
);


------------------------------------------------------------------------------------------------------------------------
Описания расчетов по заявлению (назначенные размеры), request_calculation
------------------------------------------------------------------------------------------------------------------------
Содежит оисания расчетов по заявлению, действовавшие на момент подготовки выплат (на него ссылются из таблицы request_charge)
Описание:
create table request_calculation
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null,
-- ид обрашения гражданина
	request_id integer not null,
-- хэш текстового или структурированого описания расчета установленного размера выплаты
	hash integer not null,
-- текстовое или структурированое описание расчета установленного размера выплаты
	value jsonb not null,
-- первичный ключ
	constraint calculation_pkey
		primary key (person_id, request_id, hash)
);


------------------------------------------------------------------------------------------------------------------------
Начисления по заявлению (назначенные размеры), request_charge
------------------------------------------------------------------------------------------------------------------------
Содержит сведения о начисленных суммах по заявлению, которые предполагаются к выплате (собираются при подготовке выплатных документов)
Описание:
create table request_charge
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null,
-- ид обрашения гражданина
	request_id integer not null,
-- ид начисления
	id serial not null,
-- вид начисления, одно из значений: 1 - Текущее начисление, 2 - Перерасчет/удержание, 3 - Ручная доплата/удержание
	charge_type_id smallint not null,
-- время создания
	created_time timestamp not null,
-- срок за который начисление "с"
	date_from date not null,
-- срок за который начисление "по"
	date_to date not null,
-- сумма начисления
	amount numeric(20,4) not null,
-- комментарий к начислению
	comment varchar(256),
-- описание расчет, в соответствии с которым произведено начисление, ссылка на таблицу request_calculation(person_id, request_id, calculation_hash)
	calculation_hash integer,
-- ид выплатного документа / выплаты, в котором учтено начисление, ссылка на таблицу payment_document
	payment_document_id integer
		constraint request_charge_payment_document_fkey
			references payment_document,
-- версия (для оптимистичной блокировки)
	version bigint not null,
-- первичный ключ
	constraint request_charge_pkey
		primary key (person_id, request_id, id),
-- внешний ключ
	constraint request_charge_calculation_id_fkey
		foreign key (person_id, request_id, calculation_hash) references request_calculation
			on update cascade,
-- внешний ключ
	constraint request_charge_person_request_id_fkey
		foreign key (person_id, request_id) references request
			on update cascade
);


------------------------------------------------------------------------------------------------------------------------
Сведения об организациях, осуществляющих межведомственное социальное сопровождение в заявлении, request_other_authority
------------------------------------------------------------------------------------------------------------------------
Содержит сведения об организациях, осуществляющих межведомственное социальное сопровождение, указываемых для заявлений о
признании нуждающимися
Описание:
create table request_other_authority
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null,
-- ид обрашения гражданина
	request_id integer not null,
-- ид организации, осуществляющей межведомственное социальное сопровождение (ссылка на таблицу institution)
	institution_id integer not null
		constraint request_other_authority_institution_id_fk
			references institution,
-- первичный ключ
	constraint request_other_authority_pkey
		primary key (person_id, request_id, institution_id),
-- внешний ключ
	constraint request_other_authority_request_id_id_fk
		foreign key (person_id, request_id) references request
			on update cascade
);


------------------------------------------------------------------------------------------------------------------------
Выплаты по заявлению, request_payment
------------------------------------------------------------------------------------------------------------------------
Содержит сведения о выплатах по заявлению
Описание:
create table request_payment
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null
		constraint request_payment_person_fkey
			references person
				on update cascade,
-- ид обрашения гражданина
	request_id integer not null,
-- ид выплатного документа, в который включена выплата
	payment_document_id integer not null
		constraint request_payment_payment_document_fkey
			references payment_document
				on update cascade,
-- вид выплаченной меры социальной поддержки (для заявлений на выплату МСП), внешняя ссылка на справочник msp_type, примеры значений:
-- 1 - ЕДВ (Ветераны труда)
-- 2 - ЕДВ (Ветераны труда ХМАО)
-- 3 - ЕДВ (Гражд. постр. от полит. репрессий)
	msp_type_id integer not null,
-- сумма выплаты до удержания НДФЛ
	amount numeric(20,4) not null,
-- сальдо по заявлению после выплаты
	saldo numeric(20,4) not null,
-- номер банковского счета, куда выплачивается
	payreq_bank_account numeric(20),
-- получатель выплаты (ссылка на таблицу person)
	payreq_person_id integer not null,
-- день выплаты в случае выплаты на почту
	payreq_postday integer,
-- доставочный участок в случае выплаты на почту
	payreq_postbranch integer,
-- признак невыплаты, ссылка на справочник undeployment_cause, примеры значений:
-- 0 - Выплата получена
-- 1 - Не отправлено на выплату
-- 2 - Смена места жительства
	is_undeployed smallint not null
		constraint request_payment_undeployment_cause_fkey
			references undeployment_cause
				on update cascade,
-- сумма выплаты после удержания НДФЛ
	amount_paydoc numeric(20,4),
-- дата выплатного документа (дата закрытия выплаты)
	date_payment date,
-- номер карточки в банке, куда выплачивается
	payreq_bank_card_number numeric(19),
-- первичный ключ
	constraint request_payment_pkey
		primary key (person_id, request_id, payment_document_id),
-- внешний ключ
	constraint request_payment_request_fkey
		foreign key (person_id, request_id) references request
			on update cascade
);


------------------------------------------------------------------------------------------------------------------------
Решения о приостановке/возобновлении выплат по заявлению, request_payment
------------------------------------------------------------------------------------------------------------------------
Содержит сведения о приостановке/возобновлении выплат по заявлению
Описание:
create table request_payment_decision
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null,
-- ид обрашения гражданина
	request_id integer not null,
-- дата принятия решения
	date_decision date not null,
-- дата начала действия решения
	date_from date not null,
-- причина закрытия - ссылка на справочник request_payment_close_reason, примеры значений:
-- 2 - Наличие задолженности за ЖКУ
-- 3 - Длительное неполучение
	close_reason_id integer
		constraint request_payment_decision_close_reason_id_fk
			references request_payment_close_reason,
-- причина открытия - ссылка на справочник request_payment_reopen_reason, примеры значений:
-- 2,Иная причина
-- 3,Погашение задолженности за ЖКУ
	open_reason_id integer
		constraint request_payment_decision_open_reason_id_fk
			references request_payment_reopen_reason,
-- работник, который внес решение
	decision_author_id integer,
-- уникальный номер решения в пределах номенклатурного кода
	nm_decision_no integer,
-- номенклатурный код решения
	nm_decision_code varchar(20),
-- время внесения решения
	nm_decision_created_time timestamp,
-- ид приказа, в котором учтено указанное решение
	order_id integer,
-- первичный ключ
	constraint request_payment_decision_pkey
		primary key (person_id, request_id, date_decision),
-- внешний ключ
	constraint request_payment_decision_number_unique
		unique (nm_decision_code, nm_decision_no),
-- внешний ключ
	constraint request_payment_decision_request_id_fkey
		foreign key (person_id, request_id) references request
			on update cascade,
-- внешний ключ
	constraint request_payment_decision_order_id_date_decision_fkey
		foreign key (order_id, date_decision) references "order"
);


------------------------------------------------------------------------------------------------------------------------
Сведения о рекомендованных поставщиках социальных услуг в заявлении, request_recommended_supplier
------------------------------------------------------------------------------------------------------------------------
Содержит сведения о рекомендованных поставщиках социальных услуг, указываемых для заявлений о
признании нуждающимися
Описание:
create table request_recommended_supplier
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null,
-- ид обрашения гражданина
	request_id integer not null,
-- ид рекомендованного поставщика социальных услуг (ссылка на таблицу institution)
	institution_id integer not null
		constraint request_recommended_supplier_institution_id_fk
			references institution,
-- первичный ключ
	constraint request_recommended_supplier_pkey
		primary key (person_id, request_id, institution_id),
-- внешний ключ
	constraint request_recommended_supplier_request_id_id_fk
		foreign key (person_id, request_id) references request
			on update cascade
);


------------------------------------------------------------------------------------------------------------------------
Сведения о назначенной (предусмотренной) социальной услуге по заявлению, request_service
------------------------------------------------------------------------------------------------------------------------
Содержит сведения сведения о назначенной (предусмотренной) социальной услуге по заявлению
Описание:
create table request_service
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null,
-- ид обрашения гражданина
	request_id integer not null,
-- ид вида социальной услуги, ссылка на справочник service_type, примеры значений:
-- 431 - 022 Обеспечение бесплатным горячим питанием или наборами продуктов (срочное обслуживание)
-- 1106 - 007.1 Содействие в обеспечении по заключению врача (фельдшера) лекарственными препаратами и изделиями медицинского назначения - покупка за счет средств получателя социальных услуг и доставка их на дом (стационарное обслуживание)
-- 59 - Восстановление социальных связей - создание семьи (содействие в получении социальной помощи)
	service_type_id integer not null
		constraint request_service_service_type_id_fk
			references service_type,
-- периодичность оказания (количество, штук (единиц))
	periodicity_amount integer not null,
-- вид периодичности, ссылка на таблицу service_periodicity, примеры значений:
-- 2 - раз(а) в день
-- 4 - раз(а) в месяц
-- 5 - раз(а) в год
	periodicity_id integer not null
		constraint request_service_periodicity_id_fk
			references service_periodicity,
-- срок оказания, ссылка на таблицу service_term, примеры значений:
-- 7 - Единовременно
   1 - На 1 год
   2 - На 3 года
   3 - На 1 месяц
	term_id integer not null
		constraint request_service_term_id_fk
			references service_term,
-- первичный ключ
	constraint request_service_person_id_request_id_service_type_id_pk
		primary key (person_id, request_id, service_type_id),
-- внешний ключ
	constraint request_service_request_person_id_id_fk
		foreign key (person_id, request_id) references request
			on update cascade
);


------------------------------------------------------------------------------------------------------------------------
Анкетные признаки, категории заявления, request_token
------------------------------------------------------------------------------------------------------------------------
Содержит анкетные признаки, категории заявления
Описание:
create table request_token
(
-- ид гражданина (заявителя), которому принадлежит заявление (ссылка на таблицу person)
	person_id integer not null,
-- ид обрашения гражданина
	request_id integer not null,
-- ид признака, ссылка на таблицу request_type_token_id, примеры значений:
-- 3 - Сокращение на работе
-- 4 - Скрытая безработица (скрытая занятость)
-- 5 - Студенчество
	request_type_token_id integer not null,
-- первичный ключ
	constraint request_token_pkey
		primary key (request_id, request_type_token_id, person_id)
);


------------------------------------------------------------------------------------------------------------------------
Оказанные гражданину социальные услуги, service
------------------------------------------------------------------------------------------------------------------------
Содержит все оказанные гражданину социальные услуги
Описание:
create table service
(
-- ид учреждения, оказавшего услугу (ссылка на таблицу institution)
	institution_id integer not null,
-- ид работника учреждения, оказавшего услугу (ссылка на таблицу institution_employee(institution_id, institution_employee_id))
	institution_employee_id integer,
-- ид оказанной социальной услуги (оказания)
	id serial not null,
-- ид оказанной услуги учреждения (ссылка на таблицу institution_service(institution_id, institution_service_id))
	institution_service_id integer not null,
-- ид гражданина, которому оказана услуга (ссылка на таблицу person)
	person_id integer not null
		constraint service_person_id_fk
			references person,
-- время начала оказания услуги
	start_date timestamp not null,
-- время окончания оказания услуги (не включительно)
	end_date timestamp not null,
-- время создания записи
	created_time timestamp not null,
-- время удаления записи (услуги в таблице не удаляются и не редактируются, а помечаются как неактуальные и создаются новые)
	deleted_time timestamp,
-- пользователь - создатель
	created_user integer not null,
-- пользователь - кто удалил
	deleted_user integer,
-- ид ресурса (оборудования, помещения и т.п.) учреждения, использованного при оказании услуги (ссылка на таблицу institution_resource(institution_id, institution_resource_id))
	institution_resource_id integer,
-- размер группы, в составе которой оказана групповая услуга
	total_group_size integer,
-- признак того, что услуга оказана на полностью платной основе
	payed boolean default false not null,
-- ид отделения учреждения, оказавшего услугу (ссылка на таблицу institution_department(institution_id, institution_department_id))
	institution_department_id integer,
-- первичный ключ
	constraint service_institution_employee_id_pk
		primary key (institution_id, institution_service_id, id),
-- внешний ключ
	constraint service_institution_employee_id_fk
		foreign key (institution_id, institution_employee_id) references institution_employee,
-- внешний ключ
	constraint service_institution_service_id_fk
		foreign key (institution_id, institution_service_id) references institution_service,
-- внешний ключ
	constraint service_institution_resource_institution_id_id_fk
		foreign key (institution_id, institution_resource_id) references institution_resource
);


------------------------------------------------------------------------------------------------------------------------
Запросы СМЭВ, service
------------------------------------------------------------------------------------------------------------------------
Запросы СМЭВ, поданные по гражданину (обращению)
Описание:
create table smev_message
(
-- ид запроса
	id serial not null
		constraint smev_message_pkey
			primary key,
-- ид карточки гражданина (заявителя), из которой направлен запрос (ссылка на таблицу person)
	person_id integer not null,
-- ид карточки заявления гражданина, из которой направлен запрос (ссылка на таблицу request)
	request_id integer,
-- ид вида запроса, ссылка на справочник smev_message_type, примеры значений:
-- 401001 - МСЭ. Сведения об исполнении ИПРА (соцзащита)
-- 388603 - Минобороны. Запрос сведений о размере получаемой пенсии военнослужащих (SID0003886)
-- 400001 - "ПФР. Получение сведений о размере выплат за период (включая пенсию, доплаты, устанавливаемые к пенсии, социальные выплаты и выплаты по уходу)"
	smev_message_type_id integer
		constraint smev_message_smev_message_type_fk
			references smev_message_type,
-- ид карточки гражданина, в отношении которой направлен запрос (ссылка на таблицу person)
	target_person_id integer
		constraint smev_message_person_fk
			references person,
-- текст СМЭВ-запроса
	demand varchar,
-- текст СМЭВ-ответа
	respond varchar,
-- статус обработки СМЭВ сообщения, одно из значений:
-- 0 - новое сообщение
-- 1 - в работе (направлено на ГА)
-- 2 - временное (промежуточное) предупреждение
-- 3 - успешно выполнено (окончательный статус)
-- 4 - выполнено с ошибками (окончательный статус)
	status integer,
-- время создания заявления
	created_time timestamp,
-- пользователь - создатель СМЭВ запроса
	created_user integer,
-- время последнего обновления статуса запроса
	updated_time timestamp,
-- ид карточки ИПРА гражданина, из которой направлен запрос (ссылка на таблицу ipra)
	ipra_id integer,
-- внешний ключ
	constraint smev_message_request_fk
		foreign key (person_id, request_id) references request
			on update cascade,
-- внешний ключ
	constraint smev_message_ipra_person_id_person_id_fk
		foreign key (person_id, ipra_id) references ipra
);
