<?xml version='1.0' encoding='UTF-8' ?>
<xs:schema attributeFormDefault="unqualified"
           elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="cz.mpsv.sehravaniPrijmu"
           targetNamespace="cz.mpsv.sehravaniPrijmu">

    <xs:element name="PoskytnutiPrijmuRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="UUID" type="uuidVyzvyTyp"/>
                <xs:element name="cisloJednaci" type="cisloJednaciTyp"/>
                <xs:element name="bylZamestnancem" type="xs:boolean"/>
                <xs:element name="prijmy" type="prijmyTyp"/>
                <xs:element name="zamestnanec">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="rodneCislo">
                                <xs:annotation>
                                    <xs:documentation>Rodné číslo zaměstnance. Výzvy se v první fázi budou zasílat jen pro zaměstnance,
                                        kteří mají rodné číslo.</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:minLength value="9"/>
                                        <xs:maxLength value="10"/>
                                        <xs:pattern value="\d{9,10}"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="jmeno">
                                <xs:annotation>
                                    <xs:documentation>Křestní jméno zaměstnance. Uvádí se pro kontrolu – předpokládá se, že primárním
                                        identifikátorem pro vyhledávání zaměstnance bude rodné číslo.</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:minLength value="1"/>
                                        <xs:maxLength value="100"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="prijmeni">
                                <xs:annotation>
                                    <xs:documentation>Příjmení zaměstnance. Uvádí se pro kontrolu – předpokládá se, že primárním identifikátorem pro
                                        vyhledávání zaměstnance bude rodné číslo.</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:minLength value="1"/>
                                        <xs:maxLength value="100"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="datumNarozeni" type="xs:date"/>
                            <xs:element name="ikMPSV" type="ikMpsvTyp"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="prijmyTyp">
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="MesicniPrijemDTO" type="MesicniPrijemDTOTyp"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="MesicniPrijemDTOTyp">
        <xs:sequence>
            <xs:element name="mesic" type="mesicTyp"/>
            <xs:element name="rok" type="rokTyp"/>
            <xs:element name="prijemOd" type="xs:date"/>
            <xs:element name="prijemDo" type="xs:date"/>
            <xs:element name="vysePrijmuKodA1" type="castkaTyp"/>
            <xs:element name="vysePrijmuKodA1Mena" type="menaTyp"/>
            <xs:element name="vysePrijmuKodAB" type="castkaTyp"/>
            <xs:element name="vysePrijmuKodABMena" type="menaTyp"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="uuidVyzvyTyp">
        <xs:annotation>
            <xs:documentation>Unikátní identifikátor výzvy, který je uveden v URL (deep-linku) uvnitř PDF dokumentu s výzvou. Jedná se o UUIDv4 v hexadecimální
                reprezentaci s pomlčkami, např. 511808a9-200c-4e25-bd06-3c94638b233f.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:length value="36"/>
            <xs:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ikMpsvTyp">
        <xs:annotation>
            <xs:documentation>Identifikátor klienta MPSV – unikátní identifikátor osoby.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:length value="10"/>
            <xs:pattern value="\d{10}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="cisloJednaciTyp">
        <xs:annotation>
            <xs:documentation>Číslo jednací výzvy, která se má poslat zaměstnavateli.</xs:documentation>
        </xs:annotation>
        <xs:union memberTypes="patternCisloJednaci patternCisloDSSP"/>
    </xs:simpleType>

    <xs:simpleType name="patternCisloJednaci">
        <xs:restriction base="xs:string">
            <xs:maxLength value="20"/>
            <xs:pattern value="\d+/\d{2}/[A-Z]{2}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="patternCisloDSSP">
        <xs:restriction base="xs:string">
            <xs:maxLength value="80"/>
            <xs:pattern value="[A-Z]+-\d{4}-[A-Z][A-Z0-9]*-D-[1-9]\d*"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="mesicTyp">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="1"/>
            <xs:maxInclusive value="12"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="rokTyp">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="2000"/>
            <xs:maxInclusive value="2999"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="castkaTyp">
        <xs:annotation>
            <xs:documentation>Peněžní částka v libovolné uznávané měně.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:fractionDigits value="3"/>
            <xs:totalDigits value="15"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="menaTyp">
        <xs:annotation>
            <xs:documentation>Abecední kód měny dle ISO 4217 (CZK pro českou korunu).</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:length value="3"/>
            <xs:pattern value="[A-Z]{3}"/>
        </xs:restriction>
    </xs:simpleType>


</xs:schema>