<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="urn:ru:fss:integration:types:proactive:v01" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:b1_1="urn:ru:fss:integration:types:proactive:benefit1:v01" xmlns:b2_1="urn:ru:fss:integration:types:proactive:benefit2:v01" xmlns:b4_2="urn:ru:fss:integration:types:proactive:benefit4:v02" xmlns:b5_1="urn:ru:fss:integration:types:proactive:benefit5:v01" xmlns:b6_1="urn:ru:fss:integration:types:proactive:benefit6:v01" xmlns:com="http://www.fss.ru/integration/types/common/v01" xmlns:cc="http://www.fss.ru/integration/types/dic/calcReason/v01" targetNamespace="urn:ru:fss:integration:types:proactive:v01" elementFormDefault="qualified" version="1.0">
  <xs:import namespace="urn:ru:fss:integration:types:proactive:benefit1:v01" schemaLocation="../../../xsd/v01/proactive/benefit/Benefit1.xsd" />
  <xs:import namespace="urn:ru:fss:integration:types:proactive:benefit2:v01" schemaLocation="../../../xsd/v01/proactive/benefit/Benefit2.xsd" />
  <xs:import namespace="urn:ru:fss:integration:types:proactive:benefit4:v02" schemaLocation="../../../xsd/v02/proactive/benefit/Benefit4.xsd" />
  <xs:import namespace="urn:ru:fss:integration:types:proactive:benefit5:v01" schemaLocation="../../../xsd/v01/proactive/benefit/Benefit5.xsd" />
  <xs:import namespace="urn:ru:fss:integration:types:proactive:benefit6:v01" schemaLocation="../../../xsd/v01/proactive/benefit/Benefit6.xsd" />
  <xs:import namespace="http://www.fss.ru/integration/types/common/v01" schemaLocation="../../../xsd/v01/type/Common.xsd" />
  <xs:import namespace="http://www.fss.ru/integration/types/dic/calcReason/v01" schemaLocation="../../../xsd/v01/dic/CalcReasons.xsd" />
  <xs:annotation>
    <xs:documentation>Схема описывающая типы данных для работы с документами созданными проактивно</xs:documentation>
  </xs:annotation>
  <xs:element name="confirmationRequest">
    <xs:annotation>
      <xs:documentation>Корневой элемент предоставления (со стороны СФР) проактивно собранных сведений</xs:documentation>
      <xs:documentation>Направляется контрагенту с целью проверки/корректировки/подтверждения сведений для назначения социальной поддержки</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="socialAssistNum" type="xs:long">
          <xs:annotation>
            <xs:documentation>Номер процесса социальной поддержки</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:choice>
          <xs:element ref="b1_1:benefit1Approve" />
          <xs:element ref="b2_1:benefit2Approve" />
          <xs:element ref="b4_2:benefit4Approve" />
          <xs:element ref="b5_1:benefit5Approve" />
          <xs:element ref="b6_1:benefit6Approve" />
        </xs:choice>
        <xs:element name="recalculation" type="RecalculationType" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Заполняется в случае, если был инициирован перерасчёт</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="approveSocialAssist">
    <xs:annotation>
      <xs:documentation>Корневой элемент подтверждения (со стороны Страхователя) проактивно собранных сведений</xs:documentation>
      <xs:documentation>Направляется страхователем с целью подтверждения/отказа в социальной поддержки</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="socialAssistNum" type="xs:long">
          <xs:annotation>
            <xs:documentation>Номер процесса социальной поддержки</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="changeReason" type="cc:calcReason" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Причина изменения</xs:documentation>
            <xs:documentation>Заполняется в случае повторного направления ответа</xs:documentation>
            <xs:documentation>Для первого ответа не заполняется</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:choice>
          <xs:element ref="b1_1:benefit1Approve" />
          <xs:element ref="b2_1:benefit2Approve" />
          <xs:element ref="b4_2:benefit4Approve" />
          <xs:element ref="b5_1:benefit5Approve" />
          <xs:element ref="b6_1:benefit6Approve" />
          <xs:element name="refuse">
            <xs:annotation>
              <xs:documentation>Отказ  в назначении социальной поддержки</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="reason">
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <!--TODO: необходим справочник причин отказа-->
                      <xs:annotation>
                        <xs:documentation>Причина отказа Страхователя в назначении социальной
                                                    поддержки
                                                </xs:documentation>
                      </xs:annotation>
                      <xs:minLength value="1" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
        <xs:element name="note" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Замечания</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="recalculation" type="RecalculationType" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Заполняется в случае, если был инициирован перерасчёт</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="responseOn" type="com:UuidV1Type" use="required">
        <xs:annotation>
          <xs:documentation>Ссылка на транспортный идентификатор запроса (тип сообщения СЭДО №100)</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="author" type="author">
        <xs:annotation>
          <xs:documentation>ФИО отправителя</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="email" type="email">
        <xs:annotation>
          <xs:documentation>Адрес электронной почты отправителя</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="phone" type="phoneNumber">
        <xs:annotation>
          <xs:documentation>Номер телефона отправителя</xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="approveSocialAssistResult">
    <xs:annotation>
      <xs:documentation>Корневой элемент 105 Результат обработки ответа на запрос проверки, подтверждения, корректировки сведений проактивной выплаты страхового обеспечения</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="socialAssistNum" type="xs:long">
          <xs:annotation>
            <xs:documentation>Номер процесса социальной поддержки</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="status" type="ApproveSocialAssistStatusType">
          <xs:annotation>
            <xs:documentation>Статус обработки сообщения</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="registryNum" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Номер сформированного реестра ПВСО, например: P_1234567890_2022_01_01_1234567_1. Для определения номера строки реестра (batchNo), необходимо, к номеру реестра добавить статичный суффикс «:1», т.к. в проактивных реестрах всегда 1 строка. Таким образом, batchNo будет иметь значение P_1234567890_2022_01_01_1234567_1:1</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="errorList" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Список сообщений об ошибках в заявлении</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="error" type="com:ErrorType" maxOccurs="unbounded" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="warnList" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Список сообщений об предупреждениях в заявлении</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="warn" type="com:WarnType" maxOccurs="unbounded" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="responseOn" type="com:UuidV1Type" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="ConfirmFlagType">
    <xs:annotation>
      <xs:documentation>Флаг подтверждения</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:boolean" />
  </xs:simpleType>
  <xs:simpleType name="ApproveSocialAssistStatusType">
    <xs:annotation>
      <xs:documentation>Справочник статусов обработки ответа на запрос</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="RECEIVED">
        <xs:annotation>
          <xs:documentation>Ответ страхователя получен</xs:documentation>
          <xs:documentation>Статус говорит о том, что началась обработка сообщения</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ERROR">
        <xs:annotation>
          <xs:documentation>Обнаружены ошибки</xs:documentation>
          <xs:documentation>Статус говорит о том, что в процессе обработки сообщения были обнаружены критические ошибки</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PROCESSED">
        <xs:annotation>
          <xs:documentation>Сообщение успешно обработано</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:attribute name="editable" type="xs:boolean">
    <xs:annotation>
      <xs:documentation>Атрибут указывающий, что значение элемента может быть изменено в ответе</xs:documentation>
    </xs:annotation>
  </xs:attribute>
  <xs:attribute name="required" type="xs:boolean">
    <xs:annotation>
      <xs:documentation>Атрибут указывающий, что наличие значения обязательно (not null) в ответе</xs:documentation>
    </xs:annotation>
  </xs:attribute>
  <xs:complexType name="RecalculationType">
    <xs:sequence>
      <xs:element name="batchNum" type="batch_no">
        <xs:annotation>
          <xs:documentation>Идентификатор (BATCH_NO) записи реестра выплаты</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="batch_no">
    <xs:restriction base="xs:string">
      <xs:pattern value="[C|E|P]_\d{10}_(19|20)[0-9]{2}_[0|1][0-9]_[0-3][0-9]_\d{1,9}[\S]{0,5}:\d{1,3}|\S{18}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="author">
    <xs:annotation>
      <xs:documentation>ФИО отправителя 101 сообщения</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:maxLength value="120" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="email">
    <xs:annotation>
      <xs:documentation>Электронная почта отправителя 101 сообщения</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:maxLength value="40" />
      <xs:pattern value="[^@]+@[^\.]+\..+" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="phoneNumber">
    <xs:annotation>
      <xs:documentation>Контактный телефон отправителя 101 сообщения</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:maxLength value="30" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="choiseInsurerConfirmedByInsuredType">
    <xs:restriction base="xs:boolean">
      <xs:annotation>
        <xs:documentation>Выбор страхователя для назначения и выплаты пособия подтвержден застрахованным лицом</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="contractType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="workerContract">
        <xs:annotation>
          <xs:documentation>Застрахованное лицо занято по трудовому договору</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="GPHcontract">
        <xs:annotation>
          <xs:documentation>Застрахованное лицо занято по гражданско-правовому договору</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="sumType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="amountForAllInsurers">
        <xs:annotation>
          <xs:documentation>Общая сумма заработка по всем страхователям</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="amountForCurrentInsurer">
        <xs:annotation>
          <xs:documentation>Сумма заработка по одному (текущему) страхователю</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="amountForCurrentAndPrevOtherInsurers">
        <xs:annotation>
          <xs:documentation>Сумма зароботка по одному (текущему) страхователю, а также по другим стархователям за предшествующий период работы у текущего страхователя (для ежемесячного пособия по уходу за ребенком до достижения им возраста 1,5 лет)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="insuredWorksSeveralInsurersType">
    <xs:annotation>
      <xs:documentation>Застрахованное лицо на момент наступления страхового случая занято у нескольких страхователей</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:boolean">
        <xs:attribute ref="editable" fixed="false" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="twoPrevYearsInsurersType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="same">
        <xs:annotation>
          <xs:documentation>Застрахованное лицо занято у нескольких страхователей и в двух предшествующих годах было занято у тех же страхователей</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Застрахованное лицо занято у нескольких страхователей, а в двух предшествующих годах было занято у других страхователей</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mix">
        <xs:annotation>
          <xs:documentation>Застрахованное лицо занято у нескольких страхователей, а в двух предшествующих годах было занято как у этих, так и у других страхователей</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>