\r\n );\r\n }\r\n}\r\n\r\nexport default GeneralTableView;\r\n","/* eslint-disable */\n/* tslint:disable */\n/*\n * ---------------------------------------------------------------\n * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##\n * ## ##\n * ## AUTHOR: acacode ##\n * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##\n * ---------------------------------------------------------------\n */\n\n/** RAK_AlueidenkayttopaatoksenLaatija */\nexport interface RAKAlueidenkayttopaatoksenLaatija {\n /** Etunimi: sukunimen lisänä käytettävä rekisteröidyn henkilönnimen osa, joka ei viittaa henkilön sukuun */\n etunimi?: string;\n /** Sukunimi: pääasiallisesti sukuun viittaava rekisteröidyn henkilönnimen osa */\n sukunimi?: string;\n nimike?: any;\n}\n\n/**\n * RAK_Alueidenkayttopaatos\n * Yläluokka: Yläluokka\n */\nexport interface RAKAlueidenkayttopaatos {\n /** Ohjaava säädös */\n ohjaavasaados?: string;\n /**\n * Voimassaolon alkamisajankohta: voimassaolon alkamisajankohdan määritelmä\n * @format date-time\n */\n voimassaolonalkamisajankohta?: string;\n /**\n * Voimassaolon päättymisajankohta: voimassaolon päättymisajankohdan määritelmä\n * @format date-time\n */\n voimassaolonpaattymisajankohta?: string;\n ylaluokka?: RAKPaatos;\n /**\n * Julkistamisaika\n * @format date-time\n */\n julkistamisaika?: string;\n /** Digitaalinen alkuperä: Tieto alueidenkäyttöpäätöksen digitaalisen muodon tuotantotavasta ja siihen liittyvästä juridisuuden asteesta http://uri.suomi.fi/codelist/rytj/RY_DigitaalinenAlkupera */\n digitaalinenalkupera?: string;\n /** Lähtötietoaineisto */\n lahtotietoaineisto?: RAKLahtotietoaineisto;\n /** Alueidenkäyttöpäätöksen laatija */\n alueidenkayttopaatoksenlaatija?: RAKAlueidenkayttopaatoksenLaatija[];\n /** Alueidenkäyttöpäätöksen tunnus */\n alueidenkayttopaatoksentunnus?: RAKTunnus;\n}\n\n/**\n * RAK_Asiakirja\n * Liittyvä asiakirja\n */\nexport interface RAKAsiakirja {\n /** Nimi: ainutkertaisen tarkoitteen nimitys */\n nimi?: string;\n /** Kieli */\n kieli?: string;\n /**\n * Päivämäärä: Päivämäärä, jolloin asiakirja tai dokumentti on lisätty asiaan\n * @format date-time\n */\n paivamaara?: string;\n /**\n * Vahvistuspäivämäärä: Päivämäärä jolloin asiakirja on viranomaisen vahvistama\n * @format date-time\n */\n vahvistuspaivamaara?: string;\n /** Saavutettavuus */\n saavutettavuus?: string;\n /** Asiasanasto: Tiettyyn aihepiiriin koottu asiasanojen arvojoukko. Asiasana ja asiasanasto tulee esittää parina, jotta aina tiedetään mistä asiasanastosta kyseinen asiasana on poimittu.
Huom! Asiasanasto on tarpeellinen metatieto vain tilanteissa, joissa EI käytetä Fintoon URI:lla viittaavaa \"asiasana\" -ominaisuutta. */\n asiasanasto?: string;\n /** Asiakirjatyyppi: Tieto, joka kuvaa tuotettavan asiakirjan lajia. Asiakirjoja tuotetaan yleensä asiankäsittelyyn liittyvissä yksittäisissä toimissa tai tapahtumissa (toimenpide). Asiakirjatyyppi noudattaa yhteistä luokitusta/koodistoa, esimerkkejä arvoille ovat raportti, päätös, ilmoitus, muistio, tiedote... */\n asiakirjatyyppi?: string;\n /** Asiakirjatyypin tarkenne: Tieto, joka täsmentää asiakirjatyypin yleistä luokittelua. Määritellään organisaatiokohtaisesti. */\n asiakirjatyypintarkenne?: string;\n /** Viite tiedostoon: linkki tiedoston sijaintiin */\n viitetiedostoon?: string;\n /** Julkisuusluokka http://uri.suomi.fi/codelist/rytj/julkisuus */\n julkisuusluokka?: string;\n /** Säilytysaika: Asiakirjan säilytysaika ennen sen hävittämistä http://uri.suomi.fi/codelist/rytj/sailytysaika */\n sailytysaika?: string;\n /** Henkilötietosisältö http://uri.suomi.fi/codelist/rytj/henkilotietosisalto */\n henkilotietosisalto?: string;\n versiointitiedot?: RYTJVersiointitiedot;\n}\n\n/**\n * RAK_Hakemus\n * Yläluokka: Yläluokka\n */\nexport interface RAKHakemus {\n /**\n * Saapumispäivämäärä: Päivämäärä, jolloin hakemus on saapunut sähköiseen asiointipalveluun tai kirjaamoon.\n * @format date-time\n */\n saapumispaivamaara?: string;\n /** Hakemuksen sisältö: Hakemuksen pääasiallinen sisältö */\n hakemuksensisalto?: string;\n versiointitiedot?: RYTJVersiointitiedot;\n /** Liittyvä asiakirja */\n liittyvaasiakirja?: RAKAsiakirja;\n}\n\n/** RAK_HankkeenToimenpide */\nexport interface RAKHankkeenToimenpide {\n /**\n * Rakentamistöiden aloituspäivämäärä: Päivämäärä, jolloin rakentamistoimenpiteeseen liittyvät rakennustyöt katsotaan aloitetuiksi.\n * @format date-time\n */\n rakentamistoidenaloituspaivamaara?: string;\n /**\n * Valmistumispäivämäärä: Päivämäärä, jolloin rakentamistoimenpide katsotaan kokonaan valmistuneeksi, esim. lopullisen loppukatselmuksen päivämäärä.\n * @format date-time\n */\n valmistumispaivamaara?: string;\n /**\n * Käyttöönottopäivämäärä: Rakentamistoimenpiteen osittaisen valmistumisen, toimenpiteen alaisen rakentamiskohteen käyttöönottamisen päivämäärä. Uudisrakentamisen osalta tämä vastaa rakennuksen käyttöönottopäivämäärää, muutos- ja laajennustoimenpiteiden osalta ajankohtaa, jolloin laajennus- tai muutosalan osittaisesti tai kokonaan on hyväksytty käyttöönotettavaksi.\n * @format date-time\n */\n kayttoonottopaivamaara?: string;\n /** Hyväksytty käyttöön kokonaan: Rakentamiskohde on hyväksytty käyttöönotettavaksi kokonaisuudessaan. */\n hyvaksyttykayttoonkokonaan?: boolean;\n /** Rakentamistoimenpide: maankäyttöprosessi jossa määriteltyjen vaiheiden mukaisesti tuotetaan rakennuskohde */\n rakentamistoimenpide?: RAKRakentamistoimenpide;\n}\n\n/** RAK_Hissi */\nexport interface RAKHissi {\n /** Hissin laji http://uri.suomi.fi/codelist/rytj/hissi */\n hissinlaji?: string;\n /**\n * Sisäpituus: Hissikorin sisäpituus millimetreinä\n * @format int64\n */\n sisapituus?: number;\n /**\n * Sisäleveys: Hissikorin sisäleveys millimetreinä\n * @format int64\n */\n sisaleveys?: number;\n /**\n * Oviaukon leveys: Oven kulkuaukon leveys millimetreinä\n * @format int64\n */\n oviaukonleveys?: number;\n /**\n * Oviaukon korkeus: Oven kulkuaukon korkeus millimetreinä\n * @format int64\n */\n oviaukonkorkeus?: number;\n /**\n * Henkilömäärä: Henkilöiden lukumäärä.\n * @format int64\n */\n henkilomaara?: number;\n /**\n * Kantavuus: Rakenteen, rakennusosan, nostinlaitteen tms. kantavuus kilogrammoina\n * @format int64\n */\n kantavuus?: number;\n}\n\n/** RAK_Huone */\nexport interface RAKHuone {\n /** Huonelaji: Huoneen käyttötarkoituksen mukainen laji http://uri.suomi.fi/codelist/jhs/huonelaji */\n huonelaji?: string;\n /** Yläluokka: Yläluokka */\n ylaluokka?: RAKTila;\n}\n\n/** RAK_Huoneisto */\nexport interface RAKHuoneisto {\n /** Huoneistotunnus: Pysyvä huoneistotunnus (VTJ-PHT) on jokaiselle huoneistolle ja uudisrakennushankkeen huoneistolle annettava 10-merkkinen tunnus */\n huoneistotunnus?: string;\n /** Huoneiston jakokirjain: Kirjain, joka on lisätty huoneistotunnuksen numero-osaan silloin, kun alkuperäinen huoneisto on jaettu kahdeksi tai useammaksi erilliseksi huoneistoksi. */\n huoneistonjakokirjain?: string;\n /** Porraskirjain: Useamman kuin yhden huoneiston käsittävässä rakennuksessa tai rakennuksissa sijaitsevien huoneistojen tunnuksiin kuuluva kirjain */\n porraskirjain?: string;\n /** Huoneiston numero: Useamman kuin yhden huoneiston käsittävässä rakennuksessa sijaitsevan huoneiston tunnukseen kuuluva numero */\n huoneistonnumero?: string;\n /** Huoneiston käyttötarkoitus: Tieto siitä, mihin tarkoitukseen huoneistoa saa käyttää rakennusluvan mukaisesti. VTJ:ssä sallittuja arvoja ovat asuinhuoneisto ja toimitila. http://uri.suomi.fi/codelist/rytj/Huoneistotyyppi */\n huoneistonkayttotarkoitus?: string;\n /**\n * Osoitejärjestysnumero: Tieto siitä, mikä rakennuksen osoitteista on huoneiston osoite.\n * @format int64\n */\n osoitejarjestysnumero?: number;\n /**\n * Huoneistoala: Huoneistoa ympäröivien seinien sisäpintojen mukaan laskettu pinta-ala. Pinta-alaan lasketaan mukaan vain se osa, jossa huonekorkeus ylittää 160 cm.\n * @format double\n */\n huoneistoala?: number;\n /**\n * Käyttöala: rakennuksen kokonaislaajuus, johon lasketaan bruttoalan lisäksi mukaan myös rakennetut, ei-maanvaraiset ulkotilat, kuten parvekkeet, luhtikäytävät, terassit ja kannet\n * @format double\n */\n kayttoala?: number;\n /**\n * Huoneiden lukumäärä: Huoneeksi katsotaan rakennuksessa oleva tila, jota ympäröivät lattia, katto ja seinät. Huoneiden lukumäärään ei lasketa keittiötä.\n * @format int64\n */\n huoneidenlukumaara?: number;\n /** Käymälätyyppi: Koodisto kertoo, minkä tyyppinen käymälä huoneessa on. */\n kaymalatyyppi?: string;\n /** Keittiötyyppi: Tieto siitä, minkälainen keittiö huoneistossa on. http://uri.suomi.fi/codelist/rytj/Keittiotyyppi */\n keittiotyyppi?: string;\n /** Muuttovalmis: Onko huoneisto muuttovalmis (käyttöönotettavissa). Voidaan todeta osittaisessa loppukatselmuksessa. */\n muuttovalmis?: boolean;\n /** Muuttokielto: Tieto siitä, että asuinkäyttöön rakennettuun huoneistoon ei saa muuttaa asumaan vakinaisesti. */\n muuttokielto?: boolean;\n /** Huoneiston varuste */\n huoneistonvaruste?: RAKVaruste[];\n /** Koostuu */\n koostuu?: RAKHuone[];\n}\n\n/** RAK_Ilmanvaihtotapa */\nexport interface RAKIlmanvaihtotapa {\n /** Ilmanvaihtotavan laji http://uri.suomi.fi/codelist/rytj/ilmanvaihto */\n ilmanvaihtotavanlaji?: string;\n /** Primääri: Primääri-attribuutilla kuvataan ensijaista kohdetta, jolle asetetaan arvoksi 1. */\n primaari?: boolean;\n}\n\n/** RAK_Jaahdytysenergianlahde */\nexport interface RAKJaahdytysenergianlahde {\n /** Jäähdytysenergianlähteen laji */\n jaahdytysenergianlahteenlaji?: string;\n /** Primääri: Primääri-attribuutilla kuvataan ensijaista kohdetta, jolle asetetaan arvoksi 1. */\n primaari?: boolean;\n}\n\n/** RAK_Jaahdytystapa */\nexport interface RAKJaahdytystapa {\n /** Jäähdytystavan laji http://uri.suomi.fi/codelist/rytj/jaahdytystapa */\n jaahdytystavanlaji?: string;\n /** Primääri: Primääri-attribuutilla kuvataan ensijaista kohdetta, jolle asetetaan arvoksi 1. */\n primaari?: boolean;\n}\n\n/** RAK_JalanjalkiprojektionNurkkapiste */\nexport interface RAKJalanjalkiprojektionNurkkapiste {\n /** ETRS89 koordinaattijärjestelmä: ETRS89 koordinaattijärjestelmän tunnus (esim. ETRS89 / GK25FIN) http://uri.suomi.fi/codelist/rakrek/ETRS89 */\n eTRS89koordinaattijarjestelma?: string;\n /**\n * Pohjoiskoordinaatti: ETRS-GK koordinaattijärjestelmän mukainen pohjoiskoordinaatti desimaalimuotoisena.\n * @format double\n */\n pohjoiskoordinaatti?: number;\n /**\n * Itäkoordinaatti: ETRS-GK koordinaattijärjestelmän mukainen itäkoordinaatti desimaalimuotoisena.\n * @format double\n */\n itakoordinaatti?: number;\n /**\n * Korkeusasema: Rakennuskohteen N2000 korkojärjestelmän mukainen korkeusasema metreinä kahden desimaalin tarkkuudella.\n * @format double\n */\n korkeusasema?: number;\n}\n\n/** RAK_JulkisivunRakennusaine */\nexport interface RAKJulkisivunRakennusaine {\n /** Julkisivun rakennusaineen laji http://uri.suomi.fi/codelist/rytj/julkisivunrakennusaine */\n julkisivunrakennusaineenlaji?: string;\n /** Primääri: Primääri-attribuutilla kuvataan ensijaista kohdetta, jolle asetetaan arvoksi 1. */\n primaari?: boolean;\n}\n\n/** RAK_Kaava */\nexport interface RAKKaava {\n /** Yläluokka: Yläluokka */\n ylaluokka?: RAKAlueidenkayttopaatos;\n /** Kaavalaji: alueiden käytön ohjaustarpeeseen, kaavaan sisältövaatimuksiin, prosessiin ja vastuulliseen hallintoviranomaiseen perustuva luokittelu http://uri.suomi.fi/codelist/rytj/RY_Kaavalaji */\n kaavalaji?: string;\n /** Kaavan kuvaus: Kuvaus kaavasta */\n kaavankuvaus?: string;\n /** Kaavan teema */\n kaavanteema?: string;\n /** Elinkaaren tila: Elinkaaren tila, jossa kaavan versio on http://uri.suomi.fi/codelist/rytj/RY_KaavanElinkaaritila */\n elinkaarentila?: string;\n /** Maanalaisuus: Koskeeko kaava maanalaista vai maanpäällistä rakentamista ja maankäyttöä http://uri.suomi.fi/codelist/rytj/RY_MaanalaisuudenLaji */\n maanalaisuus?: string;\n /** Kaavatiedosto: viittaus kaavatietomallin mukaiseen kaavatiedostoon */\n kaavatiedosto?: string;\n versiointitiedot?: RYTJVersiointitiedot;\n /** Kaavan liite: Sisältää vaikutusten arviointi, selvitykset ym. */\n kaavanliite?: RAKAsiakirja[];\n /** Kaavaselostus: kaavaan liittyvä selostus, jossa esitetään kaavan tavoitteiden, mahdollisten vaihtoehtojen ja niiden vaikutusten sekä ratkaisujen perusteiden arvioimiseksi tarpeelliset tiedot */\n kaavaselostus?: RAKKaavaselostus[];\n /** Kaavakohde: Kaavan sisältyvä paikkatietokohde, johon voi kohdistua kaavamääräyksiä tai kaavasuosituksia */\n kaavakohde?: RAKKaavakohde[];\n /** Osallistumis- ja arviointisuunnitelma: kaavahankkeen alkuvaiheessa laadittava maankäyttösuunnitelma, jossa kuvataan kaavan tarkoitukseen ja merkitykseen nähden tarpeelliset tiedot suunnittelualueesta ja sen sijainnista, kaavoituksen lähtökohdista, tavoitteista ja suunnitellusta aikataulusta, osallistumis- ja vuorovaikutusmenettelyistä, kaavan vaikutusten arvioinnista sekä kaavan toteuttamiseksi laadittavista muista suunnitelmista ja mahdollisista maankäyttösopimuksista, jos niiden laatiminen on tiedossa kaavan aloitusvaiheessa */\n \"osallistumis-jaarviointisuunnitelma1\"?: RAKOsallistumisJaArviointisuunnitelma;\n /** Kumoamistieto */\n kumoamistieto?: RAKKaavanKumoamistieto;\n /** Kaavamääräys: kaavaan sisältyvä sanallinen määräys, jolla ohjataan alueiden suunnittelua ja rakentamista */\n kaavamaarays1?: RAKKaavamaarays[];\n /** Kaavasuositus: kaavasuunnitelmaan sisältyvä ei-velvoittava ohje, joka ilmentää esimerkiksi toteutuksen tapaa ja tavoitetta */\n kaavasuositus1?: RAKKaavasuositus[];\n /** Muu kaava-aineisto */\n \"muukaava-aineisto\"?: RAKMuuKaavaAineisto[];\n}\n\n/** RAK_Kaavakohde */\nexport interface RAKKaavakohde {\n /** Kirjaintunnus: Kaavakohteen kirjaintunnus */\n kirjaintunnus?: string;\n /** Kohteen nimi: Nimitys, jolla kaavakohdetta kutsutaan */\n kohteennimi?: string;\n /** Kohteen kuvaus: Kuvaus kaavakohteesta */\n kohteenkuvaus?: string;\n /** Laji: kohteen laji */\n laji?: string;\n /** Sijainnin sitovuus: miten sitovasti kohteen sijaintia on tulkittava http://uri.suomi.fi/codelist/rytj/RY_Sitovuuslaji */\n sijainninsitovuus?: string;\n /** Voimassaoloaika: Aikaväli, jona kaavakohde ja sen kaavamääräykset ovat lainvoimaisia, ellei yksittäisten kaavamääräysten voimassaoloa ole erikseen rajattu */\n voimassaoloaika?: string;\n /** Liittyvän lähtötietokohteen tunnus: kohteeseen liittyvän, kaavan lähtötietoihin sisältyvän kohteen pysyvä ja yksilöivä tunnus */\n liittyvanlahtotietokohteentunnus?: string;\n /** Maanalaisuus: Koskeeko kaavamääräyskohde maanalaista vai maanpäällistä rakentamista ja maankäyttöä */\n maanalaisuus?: string;\n /** Kaavamääräys: kohteeseen liitetty määräys */\n kaavamaarays?: RAKKaavamaarays[];\n /** Kaavasuositus: kaavamääräyskohteen alueeseen kohdistuva, ei-velvoittava suositus, joka ilmentää esimerkiksi toteutuksen tapaa ja tavoitetta. */\n kaavasuositus?: RAKKaavasuositus[];\n /** Värikoodi: Kaavamääräyksen värikoodi ilmoitetaan RGB heksadesimaali -arvona, esim. #58AD41. */\n varikoodi?: string;\n /** Ympäristömuutoksen laji: Kuvaa kaavakohteen toteuttamisen aiheuttamaa muutosta alueen ympäristöön */\n ymparistomuutoksenlaji?: string;\n /** Koskee */\n koskee?: RAKKiinteisto[];\n sijainti?: RAKSijainti;\n versiointitiedot?: RYTJVersiointitiedot;\n /** Kaavamääräysryhmä */\n kaavamaaraysryhma?: RAKKaavamaaraysryhma[];\n}\n\n/** RAK_Kaavamaarays */\nexport interface RAKKaavamaarays {\n /** Aihetunniste: Asiasana, joka kuvaa kaavamääräystä hakemisen helpottamiseksi. Esim. #venepaikka. */\n aihetunniste?: string;\n /** Kaavamääräyslaji: kuvaa määräyksen tyypin */\n kaavamaarayslaji?: string;\n /** Liittyvä asiakirja: Määräystä perusteleva tai siihen muutoin liittyvä asiakirja */\n liittyvaasiakirja?: RAKAsiakirja[];\n /** Voimassaoloaika: Aikaväli, jona kaavamääräys on lainvoimainen */\n voimassaoloaika?: string;\n /** Kaavoitusteema: Kaavoituksen piiriin kuuluva temaattinen aihealue */\n kaavoitusteema?: string;\n /** Sanallisen määräyksen luokka: Koodisto tulossa */\n sanallisenmaarayksenluokka?: string;\n /** Elinkaaren tila: Elinkaaren tila, jossa kaavamääräyksen versio on http://uri.suomi.fi/codelist/rytj/RY_KaavanElinkaaritila */\n elinkaarentila?: string;\n /** Arvo: kaavamääräyksen lajia tarkentava tekstiarvo */\n arvo?: string;\n /** Kaavamääräyksen kohde: Kaavamääräyksen kaavakohde */\n kaavamaarayksenkohde?: string;\n /** Kaavamääräyksen lisätieto: kaavamääräyksen tietosisältöä tarkentava nimetty ominaisuus ja sen mahdollinen arvo. */\n kaavamaarayksenlisatieto?: string;\n}\n\n/** RAK_Kaavamaaraysryhma */\nexport interface RAKKaavamaaraysryhma {\n /** Kaavamääräyksen otsikko: Otsikko kaavamääräykselle */\n kaavamaarayksenotsikko?: string;\n /**\n * Ryhmänumero\n * @format int64\n */\n ryhmanumero?: number;\n}\n\n/**\n * RAK_KaavanKumoamistieto\n * Kumoamistieto\n */\nexport interface RAKKaavanKumoamistieto {\n /** Kumottavan kaavan tunnus: Sen kaavan kaavatunnus, joka kumotaan kokonaan tai osittain tämän kaavan tullessa voimaan */\n kumottavankaavantunnus?: string;\n /** Kumoaa kaavan kokonaan: Viitattu kaava kumoutuu kokonaisuudessaan tämän kaavan tullessa voimaan */\n kumoaakaavankokonaan?: boolean;\n /** Kumottava kaavan alue: Aluemainen geometria, joka rajaa viitattavan kaavan osan, johon kohdistetut kaavakohteet ja -määräykset kumoutuvat */\n kumottavakaavanalue?: string;\n /** Kumottavan määräyksen tunnus: Viittaustunnus kumottavalle kaavamääräykselle, joka sisältyy kumottavaan kaavaan */\n kumottavanmaarayksentunnus?: string;\n /** Kumottavan suosituksen tunnus: Viittaustunnus kumottavalle kaavasuositukselle, joka sisältyy kumottavaan kaavaan */\n kumottavansuosituksentunnus?: string;\n}\n\n/** RAK_Kaavaselostus */\nexport interface RAKKaavaselostus {\n /** Liittyvä asiakirja */\n liittyvaasiakirja?: RAKAsiakirja;\n}\n\n/** RAK_Kaavasuositus */\nexport interface RAKKaavasuositus {\n /** Elinkaaren tila: Elinkaaren tila, jossa kaavan versio on. http://uri.suomi.fi/codelist/rytj/RY_KaavanElinkaaritila */\n elinkaarentila?: string;\n /** Kaavoitusteema: Kaavoituksen piiriin kuuluva temaattinen aihealue */\n kaavoitusteema?: string;\n /**\n * Suositusnumero: Kaavasuosituksen suositusnumero\n * @format int64\n */\n suositusnumero?: number;\n /** Voimassaoloaika: aikaväli, jona asiasta tehty päätös suunnitelmineen ja säännöksineen on lainvoimainen */\n voimassaoloaika?: string;\n /** Arvo: kaavasuosituksen lajia tarkentava tekstiarvo */\n arvo?: string;\n}\n\n/** RAK_Kaavayksikko */\nexport interface RAKKaavayksikko {\n /** Kaavayksikkötunnus: tunnus, joka yksilöi rekisteröitävän asema-, rakennus- tai ranta-asemakaavaan merkityn korttelin tai sen osan ja vastaavasti muun kuin korttelialueen tai sen osan (JHS134) */\n kaavayksikkotunnus?: string;\n /** Käyttötarkoitus: Tieto siitä mihin tai miten jotakin tulisi käyttää
Kaavayksikön osalta kyse on määrätyn koodiston mukaisesta arvosta (onko näin?) */\n kayttotarkoitus?: string;\n /** Sijainti: paikka, jossa jokin sijaitsee */\n sijainti?: RAKSijainti[];\n /** Kaavayksikön elinkaaren tila: kaavayksikön elinkaaren tila (yleisimmät arvot vireillä oleva, hyväksytty tai voimassa) */\n kaavayksikonelinkaarentila?: string;\n /** Kaavayksikön laji: kaavayksikön laji */\n kaavayksikonlaji?: string;\n /** Kaavayksikön muutoslaji http://uri.suomi.fi/codelist/rytj/RY_KaavanMuutostieto */\n kaavayksikonmuutoslaji?: string;\n /** Rakennettu: Tieto mm. kiinteistöverotusta varten, onko tonttijakotontti rakennettu asemakaavan mukaisesti */\n rakennettu?: boolean;\n /** Rakennuskielto: Kunnan antama tai suoraan laista johtuva kaavan laatimisen tai muuttamisen turvaava rakentamista koskeva määräaikainen ja ehdoton kielto */\n rakennuskielto?: boolean;\n /** Voimassaolon alkamispäivämäärä */\n voimassaolonalkamispaivamaara?: string;\n /** Voimassaolon loppumispäivämäärä */\n voimassaolonloppumispaivamaara?: string;\n /** Tonttijakotontin muodostajakiinteistö: Tieto muodostajakiinteistöistä tai -määräaloista, josta tonttijakotontti muodostetaan */\n tonttijakotontinmuodostajakiinteisto?: RAKMuodostajakiinteisto[];\n /** Kaavakohde: Kaavan sisältyvä paikkatietokohde, johon voi kohdistua kaavamääräyksiä tai kaavasuosituksia */\n kaavakohde?: RAKRakentamisenArvojenJyvitys;\n /** Liittyvä tonttijakotontti */\n liittyvatonttijakotontti?: RAKTonttijakotontti[];\n /** Kumoaa tonttijakotontin */\n kumoaatonttijakotontin?: RAKTonttijakotontti[];\n /** Liittyvä kaavayksikkö */\n liittyvakaavayksikko?: RAKKaavayksikko[];\n /** Peruskiinteistö */\n peruskiinteisto?: RAKKiinteisto[];\n}\n\n/** RAK_KantavanRakenteenRakennusaine */\nexport interface RAKKantavanRakenteenRakennusaine {\n /** Kantavan rakenteen rakennusaineen laji http://uri.suomi.fi/codelist/rytj/kantavanrakenteenrakennusaine */\n kantavanrakenteenrakennusaineenlaji?: string;\n /** Primääri: Primääri-attribuutilla kuvataan ensijaista kohdetta, jolle asetetaan arvoksi 1. */\n primaari?: boolean;\n}\n\n/** RAK_Katselmus */\nexport interface RAKKatselmus {\n /** Katselmuksen laji: Kaavoitus- ja rakentamislain mukainen viranomaiskatselmuksen laji. http://uri.suomi.fi/codelist/rytj/Katselmuslaji */\n katselmuksenlaji?: string;\n /** Vaadittu lupamääräyksissä: Katselmuslajin mukainen katselmus on vaadittu lupapäätöksen määräyksissä */\n vaadittulupamaarayksissa?: boolean;\n /**\n * Katselmuksen päivämäärä: Katselmuksen pitopäivämäärä\n * @format date-time\n */\n katselmuksenpaivamaara?: string;\n /** Katselmuksen tilanne: Katselmuksen tilannetieto, arvot koodistosta Katselmuksen tilanne http://uri.suomi.fi/codelist/rytj/KatselmuksenTilanne */\n katselmuksentilanne?: string;\n /** Katselmuksen huomautukset: Katselmuksessa havaitut huomautukset */\n katselmuksenhuomautukset?: string;\n /** Katselmuksen kohteen tarkennus: Katselmuksen kohteen tarkempi kuvaus (rakennuksen osa, laite, rappu, huoneisto...) */\n katselmuksenkohteentarkennus?: string;\n /** Osittainen/lopullinen: Onko katselmus osittainen vai lopullinen (=kyseisen katselmuslajin viimeinen katselmus kyseisessä rakennushankkeessa). http://uri.suomi.fi/codelist/rytj/OsittainenLopullinen */\n osittainenlopullinen?: string;\n /** Liittyvä asiakirja */\n poytakirja?: RAKAsiakirja;\n rakentamishanke?: RAKRakentamishanke;\n katselmuksenkohde?: RAKRakennuskohde;\n /** Liittyvä asiakirja */\n liittyvaasiakirja?: RAKAsiakirja;\n}\n\n/** RAK_Kayttotarkoitus */\nexport interface RAKKayttotarkoitus {\n /** Käyttötarkoituksen laji: koodi */\n kayttotarkoituksenlaji?: string;\n /** Primääri: Primääri-attribuutilla kuvataan ensijaista kohdetta, jolle asetetaan arvoksi 1. */\n primaari?: boolean;\n}\n\n/**\n * RAK_Kiinteisto\n * Muodostajakiinteistö: viittaus muodostajakiinteistöön\n */\nexport interface RAKKiinteisto {\n /** Kiinteistötunnus: kiinteistörekisteriin merkityn rekisteriyksikön yksilöivä tunnus */\n kiinteistotunnus?: string;\n /** Kiinteistölaji: Kiinteistörekisteriin merkittävä rekisteriyksikön laji. */\n kiinteistolaji?: string;\n /** Nimi: kiinteistön nimi */\n nimi?: string;\n /** Rakennuskohde: asumista, työskentelyä tm. toimintaa varten vars. maan päälle rakennettu suoja */\n rakennuskohde?: RAKRakennuskohde[];\n sijainti?: RAKSijainti;\n /** Kiinteistön omistaja: oikeussubjekti, joka omistaa kiinteistön */\n kiinteistonomistaja?: string;\n}\n\n/**\n * RAK_Lahtotietoaineisto\n * Lähtötietoaineisto\n */\nexport interface RAKLahtotietoaineisto {\n ylaluokka?: RYTJVersiointitiedot;\n /** Aineistotunnus: Tietoaineiston pysyvä tunnus */\n aineistotunnus?: string;\n /** Nimi: ainutkertaisen tarkoitteen nimitys */\n nimi?: any[];\n /** Lähtötietoaineiston laji: lähtötietoaineiston laji http://uri.suomi.fi/codelist/rytj/RY_LahtotietoaineistonLaji */\n lahtotietoaineistonlaji?: string;\n /** Lisätietolinkki: URL-osoite, jonka viittaama resurssi tarjoaa lisätietoa asiaan liittyen */\n lisatietolinkki?: string;\n /** Metatietokuvaus: viittaus ulkoiseen metatietokuvaukseen */\n metatietokuvaus?: string;\n /** Aluerajaus: Geometrian aluerajaus */\n aluerajaus2?: RAKSijainti[];\n}\n\n/** RAK_Lammitysenergianlahde */\nexport interface RAKLammitysenergianlahde {\n /** Lämmitysenergialähteen laji http://uri.suomi.fi/codelist/rytj/lammitysenergianlahde */\n lammitysenergialahteenlaji?: string;\n /** Primääri: Primääri-attribuutilla kuvataan ensijaista kohdetta, jolle asetetaan arvoksi 1. */\n primaari?: boolean;\n}\n\n/** RAK_Lammitystapa */\nexport interface RAKLammitystapa {\n /** Lämmitystavan laji http://uri.suomi.fi/codelist/rytj/lammitystapa */\n lammitystavanlaji?: string;\n /** Primääri: Primääri-attribuutilla kuvataan ensijaista kohdetta, jolle asetetaan arvoksi 1. */\n primaari?: boolean;\n}\n\n/** RAK_Lupamaarays */\nexport interface RAKLupamaarays {\n /** Lupamääräyksen laji: Lupamääräyksen tyyppi, kuvaa asian, jota määräys koskee http://uri.suomi.fi/codelist/rytj/Lupamaarayshierarkinen */\n lupamaarayksenlaji?: string;\n /** Lupamääräysteksti: Lupamääräyksen sisältö */\n lupamaaraysteksti?: string;\n}\n\n/** RAK_Lupapaatos */\nexport interface RAKLupapaatos {\n /** Lupamääräys: rakentamisluvassa kuvattu velvoittava määräys */\n lupamaarays?: RAKLupamaarays[];\n /** Lupahakemus */\n lupahakemus?: RYTJLupahakemus;\n /** Myönnetyt poikkeamiset: Rakentamislupapäätökseen sisältyvät hyväksytyt poikkeamiset rakentamispaikkaan kohdistuvista velvottavista määräyksistä. */\n myonnetytpoikkeamiset?: RAKPoikkeaminen[];\n ylaluokka?: RAKPaatos;\n /** Rakennuspaikka */\n rakennuspaikka?: RAKRakennuspaikka;\n /** Sijoittamis-/toteuttamislupa: Haetaanko lupaa sijoittamiselle, toteuttamiselle vai molemmille http://uri.suomi.fi/codelist/rytj/LuvanSisalto */\n \"sijoittamis-toteuttamislupa\"?: string;\n sijainti?: RAKSijainti;\n /** Alueidenkäyttöpäätöksen tunnus */\n lupatunnus?: RAKTunnus;\n rakennuskohde?: RAKRakennuskohde;\n /**\n * Rakennustyöt aloitettava viimeistään: Päivämäärä, jolloin rakennustyöt on aloitettava viimeistään. 3 vuotta lainvoimaisuuspäivämäärän jälkeen.\n * @format date-time\n */\n rakennustyotaloitettavaviimeistaan?: string;\n /**\n * Rakennustyöt valmistuttava viimeistään: Päivämäärä, jolloin rakennustöiden on valmistuttava viimeistään. 5 v lainvoimaisuuspäivämäärän jälkeen.\n * @format date-time\n */\n rakennustyotvalmistuttavaviimeistaan?: string;\n}\n\n/** RAK_Muodostajakiinteisto */\nexport interface RAKMuodostajakiinteisto {\n /**\n * Sisältyvä pinta-ala: muodostavalta kiinteistöltä sisällytettävä pinta-ala\n * @format double\n */\n \"sisaltyvapinta-ala\"?: number;\n /** Muodostajakiinteistö: viittaus muodostajakiinteistöön */\n muodostajakiinteisto?: RAKKiinteisto;\n}\n\n/** RAK_MuuKaavaAineisto */\nexport type RAKMuuKaavaAineisto = object;\n\n/**\n * RAK_OsallistumisJaArviointisuunnitelma\n * Osallistumis- ja arviointisuunnitelma: kaavahankkeen alkuvaiheessa laadittava maankäyttösuunnitelma, jossa kuvataan kaavan tarkoitukseen ja merkitykseen nähden tarpeelliset tiedot suunnittelualueesta ja sen sijainnista, kaavoituksen lähtökohdista, tavoitteista ja suunnitellusta aikataulusta, osallistumis- ja vuorovaikutusmenettelyistä, kaavan vaikutusten arvioinnista sekä kaavan toteuttamiseksi laadittavista muista suunnitelmista ja mahdollisista maankäyttösopimuksista, jos niiden laatiminen on tiedossa kaavan aloitusvaiheessa\n */\nexport interface RAKOsallistumisJaArviointisuunnitelma {\n /** Liittyvä asiakirja */\n liittyvaasiakirja?: RAKAsiakirja;\n versiointitiedot?: RYTJVersiointitiedot;\n}\n\n/**\n * RAK_Osoite\n * Osoite: sijaintipaikan osoittavien tietojen kokonaisuus\n */\nexport interface RAKOsoite {\n /** Osoitenimi: katua tai tietä tarkoittava paikannimi */\n osoitenimi?: string;\n /** Osoitenumeron numero-osa: osoitenumeroon kuuluva numero */\n \"osoitenumeronnumero-osa\"?: string;\n /** Osoitenumeron jakokirjain: kirjain, joka on lisätty kiinteistön osoitenumeroon silloin, kun alkuperäinen kiinteistö on jaettu kahdeksi tai useammaksi erilliseksi kiinteistöksi */\n osoitenumeronjakokirjain?: string;\n /** Huoneistotunnuksen kirjainosa: useamman kuin yhden huoneiston käsittävässä rakennuksessa tai rakennuksissa sijaitsevien huoneistojen tunnuksiin kuuluva kirjain */\n huoneistoTunnuksenKirjainosa?: string;\n /**\n * Huoneistotunnuksen numero-osa: useamman kuin yhden huoneiston käsittävässä rakennuksessa sijaitsevan huoneiston tunnukseen kuuluva numero\n * @format int64\n */\n huoneistoTunnuksenNumero?: number;\n /** Huoneistotunnuksen jakokirjain: kirjain, joka on lisätty huoneistotunnuksen numero-osaan silloin, kun alkuperäinen huoneisto on jaettu kahdeksi tai useammaksi erilliseksi huoneistoksi */\n huoneistoTunnuksenJakokirjain?: string;\n /** Osoitteen lisämääre: opastava tieto, joka täydentää muita osoitetietoja */\n osoitteenlisamaare?: string;\n /** C/o: care of eli jonkun luona */\n co?: string;\n /** Postilokero-osoite: osoite, joka ilmaisee postin vastaanottajan vuokraamaa tai postinjakelijan osoittamaa postinjättöpaikkaa */\n \"postilokero-osoite\"?: string;\n /** Postitoimipaikka: osoitteen osa, joka viittaa tiettyyn maantieteelliseen alueeseen tai organisaatioon */\n postitoimipaikka?: string;\n /** Postinumero: osoitteen numero-osa, joka viittaa postitoimipaikkaan */\n postinumero?: string;\n /**\n * Osoitejärjestysnumero\n * @format int64\n */\n osoitejarjestysnumero?: number;\n}\n\n/** RAK_Ostoenergia */\nexport interface RAKOstoenergia {\n /** Ostoenergian laji http://uri.suomi.fi/codelist/rytj/ostoenergia */\n ostoenergianlaji?: string;\n /**\n * Ostoenergian lajin osuus\n * @format double\n */\n ostoenergianlajinosuus?: number;\n}\n\n/** RAK_Paatos */\nexport interface RAKPaatos {\n /** Päätöksen nimi: Päätöksen nimitys, joka kertoo mitä päätös koskee http://uri.suomi.fi/codelist/rytj/paatoksennimi */\n paatoksennimi?: string;\n /** Päätöspäivämäärä: Päätöksen päivämäärä */\n paatospaivamaara?: string;\n /** Päätöksen tulos: Lupapäätöksen tulos http://uri.suomi.fi/codelist/rytj/PaatoksenTulos */\n paatoksentulos?: string;\n /** Päättäjän laji: Päätöksen tekijä, monijäseninen toimielin tai viranhaltija http://uri.suomi.fi/codelist/rytj/PaatoksenTekija */\n paattajanLaji?: string;\n /** Päätöksen tekijä: Viittaus toimijaan, joka on tehnyt päätöksen */\n paatoksentekija2?: string;\n /** Päätöspykälä: Päätöksen pykälä kuntajärjestelmässä */\n paatospykala?: string;\n /** Päätösteksti: Päätöksen teksti sisältää varsinaisen päätöstekstin, perustelut, sovelletut oikeusohjeet. */\n paatosteksti?: string;\n /**\n * Päätöksen antopäivämäärä: Päätöksen antopäivämäärä. Päivämäärä määrittää valitusajan sekä päätöksen lainvoimaisuuden sekä sitä kautta aloittamisoikeuden alkamisen.\n * @format date-time\n */\n paatoksenantopaivamaara?: string;\n /**\n * Päätös voimassa saakka: Päivämäärä, johon saakka päätös on voimassa, jollei sitä erillisellä päätöksellä myöhemmin jatketa.\n * @format date-time\n */\n paatosvoimassasaakka?: string;\n /** Päätöksen raukeaminen: Päivämäärä, jolloin päätöksen on todettu rauenneen. Päätös katsotaan rauenneeksi, kun rakennustöitä ei ole aloitettu tai saatettu loppuun päätöksen voimassa oloajan tultua loppuun. Päätös merkitään rauenneeksi, kun koko lupapäätös on rauennut eikä rakentamistoimenpiteitä tule valmiiksi, vaan kaikki toimenpiteet perutaan. Päätös voidaan todeta osittain rauenneeksi merkitsemällä joku hakemuksen toimenpiteistä rauenneeksi. */\n paatoksenraukeaminen?: string;\n /**\n * Päätöksen lainvoimaisuuspäivämäärä: Päivämäärä, jolloin lupapäätös tulee tai on tullut lainvoimaiseksi. Päivämäärä erityisesti tarvitaan, mikäli lupapäätöstieto julkistetaan RYTJ:ään ennen päätöksen lainvoimaisuutta.\n * @format date-time\n */\n paatoksenlainvoimaisuuspaivamaara?: string;\n /**\n * Julkaisemisen päivämäärä: Päivämäärä, jolloin lupapäätös on julkaistu. Päivämäärällä on merkitystä lainvoimaisuuden määrittämiseen. Päivämäärä erityisesti tarvitaan, mikäli lupapäätöstieto julkistetaan RYTJ:ään ennen päätöksen lainvoimaisuutta.\n * @format date-time\n */\n julkaisemisenpaivamaara?: string;\n /** Päätöksen tila: Maankäyttöpäätöksen tila; sallittuja arvoja ovat Lainvoimainen, Osittain voimassa, Voimassa, Kumottu, Valituksen alainen */\n paatoksentila?: string;\n versiointitiedot?: RYTJVersiointitiedot;\n /** Liittyvä asiakirja */\n liittyvaasiakirja?: RAKAsiakirja;\n}\n\n/** RAK_Poikkeaminen */\nexport interface RAKPoikkeaminen {\n /** Poikkeamisen laji: Velvoittava määräys, josta luvan yhteydessä haetaan poikkeamiselle lupaa. http://uri.suomi.fi/codelist/rytj/PoikkeamisenLaji */\n poikkeamisenlaji?: string;\n /** Poikkeamisen sisältö: Teksti, jolla kuvataan, miten määräyksestä poiketaan. */\n poikkeamisensisalto?: string;\n}\n\n/** RAK_RakennuksenOsa */\nexport interface RAKRakennuksenOsa {\n /** Rakennuksen osatunnus: Rakennuksen osalle määritetty rakennuksen osan tunnus. Tunnus on tyhjä, jos rakennus koostuu vain yhdestä osasta. Kullakin rakennuksen osalla on erillinen rakennuksen osatunnus. Pysyvä rakennustunnus on jokaisella samaan rakennukseen liittyvällä osalla sama. */\n rakennuksenosatunnus?: string;\n /** Väliaikainen tunnus */\n valiaikainentunnus?: string;\n /** Valmistumisvuosi: Tieto siitä, minä vuonna rakennus on valmistunut. Tätä tietoa käytetään, jos rakennuksen valmistumisajankohtaa ei voida ilmaista päivämäärän tarkkuudella. */\n valmistumisvuosi?: string;\n /**\n * Valmistumispäivämäärä: Rakennuksen lopullisen loppukatselmuksen hyväksymisen päivä\n * @format date-time\n */\n valmistumispaivamaara?: string;\n /**\n * Käyttöönottopäivämäärä: Rakennuksen ensimmäisen käyttöönottokatselmuksen hyväksymisen päivä\n * @format date-time\n */\n kayttoonottopaivamaara?: string;\n /** Kuntanumero: Digi- ja väestötietoviraston (DVV) kunnalle antama kolminumeroinen tunnus */\n kuntanumero?: string;\n /** Äänestysaluenumero: Suomen vaaleissa käytettävä äänestysalueen numero */\n aanestysaluenumero?: string;\n /** Kulttuurihistoriallinen merkittävyys: Tieto kohteen kulttuurihistoriallisesta merkittävyydestä. http://uri.suomi.fi/codelist/rakrek/kulthistmer */\n kulttuurihistoriallinenmerkittavyys?: string;\n /** Elinkaaren vaihe: Rakennuksen elinkaaren vaiheet suunnittelusta rakennusosien uudelleenkäyttöön asti. http://uri.suomi.fi/codelist/rakrek/rakelinvaih */\n elinkaarenvaihe?: string;\n /** Rakennuksen käytössäolo: Rakennuksen käytön tilanne. Rakennuksen käytössäolotieto päätellään mm. asumistietojen perusteella VTJ:ssä. */\n rakennuksenkaytossaolo?: string;\n /** Suhde maan pintaan: Tieto siitä, missä rakennus sijaitsee suhteessa maan pintaan. */\n suhdemaanpintaan?: string;\n /**\n * Korkeus: Absoluuttinen korkeus rakennuksen tai rakennuksen osan korkeimmasta kohdasta.\n * @format double\n */\n korkeus?: number;\n /** Lentoeste: Tieto siitä, onko kohde lentoeste. Kohde tulee määritellä lentoesteeksi EUROCONTROL Terrain and Obstacle Data Manual Edition 2.1 -dokumentin perusteella (ISBN: 978-2-87497-079-5). Kohteen määrittelyyn lentoesteeksi vaikuttavat mm. kohteen etäisyys kiitoradasta, kohteen suhteellinen korkeus ja maanpinnan korkeus. */\n lentoeste?: boolean;\n /**\n * Kerrosluku: Rakennuksen maanpäällisten kerrosten lukumäärä. Kerroslukuun lasketaan kaikki ne kokonaan tai pääasiallisesti maanpinnan yläpuolella olevat kerrokset (=ei kellarikerrokset), joissa on asuin- tai työ (toimi-) tiloja tai rakennuksen pääasiallisen käyttötarkoituksen mukaisia tiloja. Kerroslukuun ei lasketa ullakkoa.\n * @format int64\n */\n kerrosluku?: number;\n /**\n * Kokonaisala: Rakennuksen pinta-ala, johon lasketaan ulkomitoin kaikkien kerrosten, kellareiden ja lämpöeristettyjen ullakkohuoneiden pinta-alat. Pinta-alaan ei lasketa parvekkeita, katoksia eikä tiloja, joissa vapaa korkeus on alle 160 cm.\n * @format int64\n */\n kokonaisala?: number;\n /**\n * Kerrosala: Kerrosten alat ulkoseinien ulkopinnan mukaan laskettuina sekä se kellarikerroksen tai ullakon ala, johon sijoitetaan tai voidaan näiden tilojen sijainnista, yhteyksistä, koosta, valoisuudesta ja muista ominaisuuksista päätellen sijoittaa rakennuksen pääasiallisen käyttötarkoituksen mukaisia tiloja.\n * @format int64\n */\n kerrosala?: number;\n /**\n * Rakennusoikeudellinen kerrosala: Kerrosalasta huomioidaan ulkoseinien sisällä oleva pinta-ala ja ulkoseinistä vain se osa, joka on paksuudeltaan enintään 250 mm.\n * @format int64\n */\n rakennusoikeudellinenkerrosala?: number;\n /**\n * Huoneistoala: Ala, jota rajaavat toisaalta huoneistoa ympäröivien seinien, toisaalta huoneiston sisällä olevien kantavien seinien ja muiden rakennukselle välttämättömien rakennusosien huoneiston puoleiset pinnat. Pinta-alaan lasketaan mukaan vain se osa, jossa huonekorkeus ylittää 160 cm.\n * @format int64\n */\n huoneistoala?: number;\n /**\n * Kellariala: Kellarikerrosten yhteenlaskettu pinta-ala. Kellarikerroksen pinta-ala on kellarikerrosta ympäröivien seinien ulkopintojen rajoittama ala. Mukaan ei lasketa 160 cm:ä matalampia tiloja. Kellarikerroksiksi luetaan kaikki kokonaan tai pääasiallisesti maanpinnan alapuolella olevat kerrokset.\n * @format int64\n */\n kellariala?: number;\n /**\n * Tilavuus: Rakennuksen tilavuus lasketaan sen tilan perusteella, jota rajoittavat ulkoseinien ulkopinnat, alapohjan alapinta ja yläpohjan yläpinta.\n * @format int64\n */\n tilavuus?: number;\n /**\n * Lämmitetty nettopinta-ala\n * @format double\n */\n \"lammitettynettopinta-ala\"?: number;\n /**\n * Lämmitetty tilavuus\n * @format int64\n */\n lammitettytilavuus?: number;\n /** Rakentamistapa: selvitettävä onko tarvetta, sisältyy KuntaGML:ään merkityksessä \"paikalla rakennettu tai elementtirakenteinen\" http://uri.suomi.fi/codelist/vtj/Rake_runkotapa */\n rakentamistapa?: string;\n /** Laajarunkoinen rakennus */\n laajarunkoinenrakennus?: boolean;\n /** Paloluokka: Rakennuksen paloluokka http://uri.suomi.fi/codelist/rytj/Paloluokka */\n paloluokka?: string;\n /** Energiatehokkuusluku: kWh/brm2/vuosi */\n energiatehokkuusluku?: string;\n /** Energialuokka: Rakennuksen energiatehokkuusdirektiivin mukainen energialuokka. http://uri.suomi.fi/codelist/rytj/Energialuokka */\n energialuokka?: string;\n /** Energiatodistus */\n energiatodistus?: boolean;\n /** Ilmastoselvitys */\n ilmastoselvitys?: boolean;\n /**\n * Hiilijalanjälki\n * @format int64\n */\n hiilijalanjalki?: number;\n /**\n * Hiilikädenjälki\n * @format int64\n */\n hiilikadenjalki?: number;\n /**\n * Kokoontumistilan henkilömäärä: Kokoontumistilaan hyväksyttävä enimmäishenkilömäärä\n * @format int64\n */\n kokoontumistilanhenkilomaara?: number;\n /** Väliaikainen rakennus: Onko rakennus väliaikainen */\n valiaikainenrakennus?: boolean;\n /**\n * Väliaikainen rakennus, asti: Mihin asti väliaikainen rakennus on voimassa\n * @format date-time\n */\n valiaikainenrakennusasti?: string;\n /** Huoneisto: rakennukseen liittyvä hallintakohde, joka käyttötarkoituksensa ja omistuksensa perusteella luetaan yhdeksi kokonaisuudeksi ja jolla on oma välitön sisäänkäynti */\n huoneisto?: RAKHuoneisto[];\n /** Rakennuksen tila */\n tila3?: RAKTila[];\n /** Sisäänkäynti */\n sisaankaynti?: RAKSisaankaynti[];\n sijainti?: RAKSijainti;\n /** Verkostoliittymä */\n verkostoliittyma1?: RAKVerkostoliittyma[];\n /** Lämmitysenergianlähde */\n lammitysenergianlahde1?: RAKLammitysenergianlahde[];\n /** Jäähdytysenergianlähde */\n jaahdytysenergianlahde1?: RAKJaahdytysenergianlahde[];\n /** Hissi */\n hissi1?: RAKHissi[];\n /** Ilmanvaihtotapa */\n ilmanvaihtotapa1?: RAKIlmanvaihtotapa[];\n /** Jäähdytystapa */\n jaahdytystapa1?: RAKJaahdytystapa[];\n /** Lämmitystapa */\n lammitystapa1?: RAKLammitystapa[];\n /** Viemäröintitapa */\n viemarointitapa1?: RAKViemarointitapa[];\n /** Ostoenergia */\n ostoenergia1?: RAKOstoenergia[];\n /** Julkisivun rakennusaine */\n julkisivunRakennusaine1?: RAKJulkisivunRakennusaine[];\n /** Kantavan rakenteen rakennusaine */\n kantavanRakenteenRakennusaine1?: RAKKantavanRakenteenRakennusaine[];\n /** Talousvesi */\n talousvesi1?: RAKTalousvesi[];\n /** Jalanjälkiprojektion nurkkapiste */\n jalanjalkiprojektionNurkkapiste1?: RAKJalanjalkiprojektionNurkkapiste[];\n /** Referenssipiste */\n referenssipiste1?: RAKReferenssipiste[];\n /** Sähköenergianlähde */\n sahkoenergianlahde1?: RAKSahkoenergianlahde[];\n /** Käyttötarkoitus */\n kayttotarkoitus1?: RAKKayttotarkoitus[];\n}\n\n/** RAK_RakennuksenTietomalli */\nexport interface RAKRakennuksenTietomalli {\n /** Jalanjälkiprojektion nurkkapiste */\n jalanjalkiprojektionnurkkapiste?: RAKJalanjalkiprojektionNurkkapiste[];\n /** Liittyvä asiakirja */\n asiakirja?: RAKAsiakirja;\n /** Rakennuksen tietomallin laji: BIM-tietomallin tyyppi: suunnittelumalli, toteumamalli http://uri.suomi.fi/codelist/rytj/rakennuksentietomallinlaji */\n rakennuksentietomallinlaji?: string;\n}\n\n/** RAK_Rakennus */\nexport interface RAKRakennus {\n /** Pääasiallinen käyttötarkoitus: Rakennuksen pääasiallinen käyttötarkoitus. Attribuutin arvo määräytyy Tilastokeskuksen Rakennusluokituksen mukaisesti. http://uri.suomi.fi/codelist/jhs/rakennus_1_20180712 */\n kayttotarkoitus?: string;\n /**\n * Käyttöönottopäivämäärä\n * @format date-time\n */\n kayttoonottopaivamaara?: string;\n /** Pysyvä rakennustunnus: Väestötietojärjestelmään tallennettu pysyvä rakennustunnus. */\n pysyvarakennustunnus?: string;\n /**\n * Kerrosluku: Rakennuksen maanpäällisten kerrosten lukumäärä. Kerroslukuun lasketaan kaikki ne kokonaan tai pääasiallisesti maanpinnan yläpuolella olevat kerrokset (=ei kellarikerrokset), joissa on asuin- tai työ (toimi-) tiloja tai rakennuksen pääasiallisen käyttötarkoituksen mukaisia tiloja. Kerroslukuun ei lasketa ullakkoa.\n * @format int64\n */\n kerrosluku?: number;\n /** Rakennuksen osa */\n rakennuksenosa?: RAKRakennuksenOsa[];\n ylaluokka?: RAKRakennuskohde;\n rakennuksenvaruste?: RAKVaruste;\n}\n\n/** RAK_Rakennuskohde */\nexport interface RAKRakennuskohde {\n /** Rakennuspaikka */\n rakentamispaikka?: RAKRakennuspaikka;\n /** Rakennuksen tietomalli: tietomalli, joka mahdollistaa rakennustietojen vaihdon, jakamisen ja käytön */\n rakennuksentietomalli?: RAKRakennuksenTietomalli[];\n /** Sijainti: paikka, jossa jokin sijaitsee */\n sijainti?: RAKSijainti[];\n /** Rakennuskohteen osoite */\n rakennuskohteenosoite?: RAKOsoite[];\n /** Rakennuskohteen omistaja */\n rakennuskohteenomistaja?: RAKRakennuskohteenOmistaja[];\n /** Rakennuskohteen tyyppi: Tieto siitä, onko rakennuskohde rakennus, rakennelma vai erityistä toimintaa varten suunniteltu alue http://uri.suomi.fi/codelist/rytj/RakennuskohteenTyyppi */\n rakennuskohteentyyppi?: string;\n /** Tiedon lähde: mitä kautta tieto rakennuskohteesta on saatu, esim rakennuslupa, oma ilmoitus http://uri.suomi.fi/codelist/rytj/RakennuskohteenTiedonlahde */\n tiedonlahde?: string;\n versiointitiedot?: RYTJVersiointitiedot;\n /** Alueidenkäyttöpäätöksen tunnus */\n rakennuskohteentunnus?: RAKTunnus;\n rakennuskohde?: RAKRakennuskohde;\n}\n\n/** RAK_RakennuskohteenOmistaja */\nexport interface RAKRakennuskohteenOmistaja {\n /** Omistajalaji: Rakennuskohteen omistajalaji http://uri.suomi.fi/codelist/rytj/Omistajalaji */\n omistajalaji?: string;\n /** Omistuksen laji: Rakennuskohteen omistuksen laji http://uri.suomi.fi/codelist/rytj/Omistuksenlaji */\n omistuksenlaji?: string;\n /** Tunnuksettoman omistajan tunnustiedot */\n tunnuksettomanomistajantunnustiedot?: RAKTunnuksettomanOmistajanTunnustiedot[];\n}\n\n/**\n * RAK_Rakennuspaikka\n * Rakennuspaikka\n */\nexport interface RAKRakennuspaikka {\n /** Kaavalaji: Maankäyttöpäätös, jonka tuloksena syntyy alueiden käyttöä ohjaava kaava. http://uri.suomi.fi/codelist/rytj/RY_Kaavalaji */\n kaavalaji?: string;\n /**\n * Pinta-ala: Rakennuspaikan pinta-ala\n * @format double\n */\n \"pinta-ala\"?: number;\n kaavayksikko?: RAKKaavayksikko;\n sijainti?: RAKSijainti;\n /** Osoite: sijaintipaikan osoittavien tietojen kokonaisuus */\n osoite?: RAKOsoite[];\n}\n\n/**\n * RAK_RakentamisenArvojenJyvitys\n * Kaavakohde: Kaavan sisältyvä paikkatietokohde, johon voi kohdistua kaavamääräyksiä tai kaavasuosituksia\n */\nexport interface RAKRakentamisenArvojenJyvitys {\n /** Kaavakohde: Kaavan sisältyvä paikkatietokohde, johon voi kohdistua kaavamääräyksiä tai kaavasuosituksia */\n kaavakohde?: RAKKaavakohde[];\n /**\n * Jyvitettävä pinta-ala\n * @format double\n */\n \"jyvitettavapinta-ala\"?: number;\n}\n\n/** RAK_Rakentamishanke */\nexport interface RAKRakentamishanke {\n /** Rakentamishankkeen kuvaus: Rakentamishankkeen sanallinen kuvaus */\n rakentamishankkeenkuvaus?: string;\n /**\n * Aloittamispäivämäärä: Hankkeen aloittamispäivämäärä, päivämäärä, jolloin asiaan liittyvien rakentamistoimenpiteiden on katsottu alkaneeksi/arvioitu alkavaksi\n * @format date-time\n */\n aloittamispaivamaara?: string;\n /**\n * Päättymispäivämäärä: Päivämäärä, jolloin hankkeen katsotaan päättyneen, yleensä lopullisen loppukatselmuksen päivämäärä.\n * @format date-time\n */\n paattymispaivamaara?: string;\n /** Rakennuspaikka */\n rakentamispaikka?: RAKRakennuspaikka;\n /** Mahdollistava lupa: Lupapäätös, joka mahdollistaa rakentamishankkeen toteuttamisen */\n mahdollistavalupa?: RAKLupapaatos[];\n /** Hankkeen toimenpide: Liittyvän rakentamistoimenpiteen hankkeenaikainen edistymis- ja valmistumistieto */\n hankkeentoimenpide?: RAKHankkeenToimenpide[];\n}\n\n/**\n * RAK_Rakentamistoimenpide\n * Rakentamistoimenpide: maankäyttöprosessi jossa määriteltyjen vaiheiden mukaisesti tuotetaan rakennuskohde\n */\nexport interface RAKRakentamistoimenpide {\n /** Rakentamistoimenpiteen laji: Rakentamistoimenpiteen laji http://uri.suomi.fi/codelist/rytj/Rakentamistoimenpide */\n rakentamistoimenpiteenlaji?: string;\n /** Rakentamistoimenpiteen kuvaus: Toimenpiteen tarkentava kuvaus */\n rakentamistoimenpiteenkuvaus?: string;\n /**\n * Raukeamispäivämäärä: Päivämäärä, jolloin lupapäätöksen katsotaan rauenneen kyseisen rakentamistoimenpiteen osalta.\n * @format date-time\n */\n raukeamispaivamaara?: string;\n /**\n * Jatkoajan päivämäärä: Hankkeen loppuunsaattamiselle myönnetyn jatkoajan päivämäärä.\n * @format date-time\n */\n jatkoajanpaivamaara?: string;\n /** Perusparannus: Kyseessä on rakennuksen perusparannustoimenpide. */\n perusparannus?: boolean;\n /** Purkamisen syy: Rakennuksen purkamisen syy (ainoastaan purkamistoimenpiteelle). http://uri.suomi.fi/codelist/rytj/PurkamisenSyy */\n purkamisensyy?: string;\n /**\n * Muutosala: Muutostyön pinta-alatieto\n * @format int64\n */\n muutosala?: number;\n /**\n * Korjausaste: Korjausaste (%)\n * @format int64\n */\n korjausaste?: number;\n /** Rakennuspaikka */\n rakentamispaikka?: RAKRakennuspaikka;\n liittyy?: RAKLupapaatos;\n}\n\n/** RAK_Referenssipiste */\nexport interface RAKReferenssipiste {\n /** ETRS89 koordinaattijärjestelmä: ETRS89 koordinaattijärjestelmän tunnus (esim. ETRS89 / GK25FIN) http://uri.suomi.fi/codelist/rakrek/ETRS89 */\n eTRS89koordinaattijarjestelma?: string;\n /**\n * Pohjoiskoordinaatti: ETRS-GK koordinaattijärjestelmän mukainen pohjoiskoordinaatti desimaalimuotoisena.\n * @format double\n */\n pohjoiskoordinaatti?: number;\n /**\n * Itäkoordinaatti: ETRS-GK koordinaattijärjestelmän mukainen itäkoordinaatti desimaalimuotoisena.\n * @format double\n */\n itakoordinaatti?: number;\n /**\n * Korkeusasema: Rakennuskohteen N2000 korkojärjestelmän mukainen korkeusasema metreinä kahden desimaalin tarkkuudella.\n * @format double\n */\n korkeusasema?: number;\n}\n\n/** RAK_Sahkoenergianlahde */\nexport interface RAKSahkoenergianlahde {\n /** Sähköenergialähteen laji http://uri.suomi.fi/codelist/rytj/sahkoenergianlahde */\n sahkoenergialahteenlaji?: string;\n /** Primääri: Primääri-attribuutilla kuvataan ensijaista kohdetta, jolle asetetaan arvoksi 1. */\n primaari?: boolean;\n}\n\n/** RAK_Sijainti */\nexport interface RAKSijainti {\n /** Osoite: sijaintipaikan osoittavien tietojen kokonaisuus */\n osoite?: RAKOsoite;\n /** Pistemäinen sijainti: Koordinaattipiste */\n pistemainensijainti?: string;\n /** Viivamainen sijainti: Kohteen viivamainen sijainti */\n viivamainensijainti?: string;\n /** Aluemainen sijainti: Kohteen aluemainen sijainti */\n aluemainensijainti?: string;\n /** Sijainnin luontitapa: Tapa, jolla sijainti on luotu tai määritetty */\n sijainninluontitapa?: string;\n /** Sijaintiepävarmuus: Sijaintiepävarmuustasot */\n sijaintiepavarmuus?: string;\n /** Koordinaatisto: Sijainnin määrittämiseen käytetty koordinaatisto */\n koordinaatisto?: string;\n /** Kolmiulotteinen sijainti: Rakennuksen tai muun rakentamisen kohteen kolmiulotteinen sijaintitieto */\n kolmiulotteinensijainti?: string;\n /** ETRS89 koordinaattijärjestelmä: ETRS89 koordinaattijärjestelmän tunnus (esim. ETRS89 / GK25FIN) */\n eTRS89koordinaattijarjestelma?: string;\n /**\n * Pohjoiskoordinaatti: ETRS-GK koordinaattijärjestelmän mukainen pohjoiskoordinaatti desimaalimuotoisena.\n * @format double\n */\n pohjoiskoordinaatti?: number;\n /**\n * Itäkoordinaatti: ETRS-GK koordinaattijärjestelmän mukainen itäkoordinaatti desimaalimuotoisena.\n * @format double\n */\n itakoordinaatti?: number;\n}\n\n/** RAK_Sisaankaynti */\nexport interface RAKSisaankaynti {\n /** Sisäänkäynnin osoitetunnus: Merkkiyhdistelmä, joka yksilöi sisäänkäynnin ja on kirjattu rakennusta koskeviin virallisiin asiakirjoihin. */\n sisaankaynninosoitetunnus?: string;\n /** Status: Tiedon lähteeseen perustuva kirjaus, joka voidaan ottaa huomioon tiedon laatua tai luotettavuutta arvioitaessa. */\n status?: string;\n /** Sisäänkäynnin tyyppi: Sisäänkäynnin käyttötarkoitusta tai -tapaa kuvaava tieto. http://uri.suomi.fi/codelist/rytj/sisaankaynti */\n sisaankaynnintyyppi?: string;\n /** On esteetön */\n onesteeton?: boolean;\n /** ETRS89 koordinaattijärjestelmä: ETRS89 koordinaattijärjestelmän tunnus (esim. ETRS89 / GK25FIN) http://uri.suomi.fi/codelist/rakrek/ETRS89 */\n \"etrs-gk-kaista\"?: string;\n /**\n * Pohjoiskoordinaatti: ETRS-GK koordinaattijärjestelmän mukainen pohjoiskoordinaatti desimaalimuotoisena.\n * @format double\n */\n pohjoiskoordinaatti?: number;\n /**\n * Itäkoordinaatti: ETRS-GK koordinaattijärjestelmän mukainen itäkoordinaatti desimaalimuotoisena.\n * @format double\n */\n itakoordinaatti?: number;\n /** Primääri: Primääri-attribuutilla kuvataan ensijaista kohdetta, jolle asetetaan arvoksi 1. */\n primaari?: boolean;\n /** Sisäänkäynnin tunnus */\n sisaankaynnintunnus?: string;\n}\n\n/** RAK_Talousvesi */\nexport interface RAKTalousvesi {\n /** Talousveden laji http://uri.suomi.fi/codelist/rytj/talousvesi */\n talousvedenlaji?: string;\n}\n\n/**\n * RAK_Tila\n * Yläluokka: Yläluokka\n */\nexport interface RAKTila {\n /** Pysyvä tilatunnus */\n pysyvatilatunnus?: string;\n /**\n * Tilavuus: tilan vaipan sisäpintojen rajaama tilavuus\n * @format double\n */\n tilavuus?: number;\n /** Tilan nimi: Tilan ihmisluettava nimi, esimerkiksi. \"Luokka 2A\", \"pukuhuone\" */\n tilannimi?: string;\n /**\n * Pohjapinta-ala: Jonkin tilan pohjaksi laskettavan osuuden pinta-ala\n * @format double\n */\n \"pohjapinta-ala\"?: number;\n /** Tilatyyppi: tilan luokittelu jonkin taksonomian (esim TAKU tai TALO2000 tilanimikkeistön) mukaan */\n tilatyyppi?: string;\n /** Tilalaji: Huoneen tai muun tilan käyttötarkoituksen laji http://uri.suomi.fi/codelist/jhs/huonelaji */\n tilalaji?: string;\n /** Tilan käyttötarkoitus: Sisätilan käyttötarkoitus */\n tilankayttotarkoitus?: string;\n /** On asuinhuone: täyttääkö tila asuinhuoneen kriteerit */\n onasuinhuone?: boolean;\n /**\n * Huoneala: ala, jonka rajoina ovat huonetta ympäröivien seinien pinnat tai niiden ajateltu jatke\n * @format double\n */\n huoneala?: number;\n /**\n * Kokoontumistilan henkilömäärä: Kokoontumistilaan hyväksyttävä enimmäishenkilömäärä.\n * @format int64\n */\n kokoontumistilanhenkilomaara?: number;\n /** Tilaryhmä: Tilaryhmä johon tila liittyy */\n tilaryhma?: string;\n /** Tilan varuste */\n tilanvaruste?: RAKVaruste[];\n versiointitiedot?: RYTJVersiointitiedot;\n}\n\n/** RAK_Tonttijakotontti */\nexport interface RAKTonttijakotontti {\n /** Liittyvä kaavayksikkö */\n liittyvakaavayksikko?: RAKKaavayksikko[];\n}\n\n/** RAK_TunnuksettomanOmistajanTunnustiedot */\nexport interface RAKTunnuksettomanOmistajanTunnustiedot {\n /** Rakennuksen omistajan poiston syy */\n rakennuksenomistajanpoistonsyy?: string;\n /**\n * Rakennuksen omistajan poistopäivämäärä\n * @format date-time\n */\n rakennuksenomistajanpoistopaivamaara?: string;\n /** Tunnuksettoman omistajan kotimainen tai ulkomainen osoite */\n tunnuksettomanomistajankotimainentaiulkomainenosoite?: string;\n /** Tunnuksettoman omistajan tunnistetiedot */\n tunnuksettomanomistajantunnistetiedot?: string;\n}\n\n/**\n * RAK_Tunnus\n * Alueidenkäyttöpäätöksen tunnus\n */\nexport interface RAKTunnus {\n /** Tunnus: merkkijono, jota voidaan käyttää yksilöintiin tietyn järjestelmän sisällä */\n tunnus?: string;\n /** Tunnuksen antaja: Taho, joka on alunperin antanut kyseisen tunnuksen. Esim. kunta */\n tunnuksenantaja?: string;\n}\n\n/** RAK_Varuste */\nexport interface RAKVaruste {\n /** Varusteen tyyppi: Ylätason luokittelu, minkä tyyppisestä varusteesta on kyse http://uri.suomi.fi/codelist/rytj/VarusteenLaji */\n varusteentyyppi?: string;\n /** Varuste: Rakennukseen, rakennelmaan tai huoneistoon kiinteästi asennettu järjestelmä tai laite. */\n varuste?: string;\n versiointitiedot?: RYTJVersiointitiedot;\n}\n\n/** RAK_Verkostoliittyma */\nexport interface RAKVerkostoliittyma {\n /** Verkostoliittymän laji http://uri.suomi.fi/codelist/rytj/verkliit */\n verkostoliittymanlaji?: string;\n}\n\n/** RAK_Viemarointitapa */\nexport interface RAKViemarointitapa {\n /** Jätevesien käsittelyn laji http://uri.suomi.fi/codelist/rytj/jatevesienkasittely */\n viemarointitavanlaji?: string;\n /** Huleveden käsittelyn laji */\n hulevedenkasittelynlaji?: string;\n}\n\n/**\n * RYTJ_Lupahakemus\n * Lupahakemus\n */\nexport interface RYTJLupahakemus {\n /** Yläluokka: Yläluokka */\n ylaluokka?: RAKHakemus;\n /** Sijoittamis-/toteuttamislupa: Haetaanko lupaa sijoittamiselle, toteuttamiselle vai molemmille http://uri.suomi.fi/codelist/rytj/LuvanSisalto */\n \"sijoittamis-toteuttamislupa\"?: string;\n /** Rakentamislupahakemuksen tyyppi: Hakemuksen tyyppi kuvaa, mistä asiassa on kysymys, onko kyseessä rakentamislupa-, purkamislupa-, maisematyöasia jne. http://uri.suomi.fi/codelist/rytj/HakemuksenTyyppi */\n rakentamislupahakemuksentyyppi?: string;\n rakentamishanke?: RAKRakentamishanke;\n /** Haetut poikkeamiset */\n haetutpoikkeamiset?: RAKPoikkeaminen[];\n /** Lupahakemus */\n liittyvalupahakemus?: RYTJLupahakemus;\n}\n\n/** RYTJ_Versiointitiedot */\nexport interface RYTJVersiointitiedot {\n /** Nimiavaruus: Tietomallin objektien pysyvien tunnusten yhteinen osa */\n nimiavaruus?: string;\n /** Viittaustunnus: Globaalisti yksilöivä, pysyvä tunnus tietomallin objektille. Muodostetaan liittämällä nimiavaruus ja paikallinen tunnus yhteen. */\n viittaustunnus?: string;\n /** Identiteettitunnus: pysyvä ja kansallisesti yksilöivä tunnus, joka kytkeytyy kohteen identiteettiin. Tunnus säilyy sellaisissa muutoksissa, joiden jälkeen kohteen identiteetin katsotaan olevan oleellisesti sama kuin ennen muutosta. */\n identiteettitunnus?: string;\n /** Tuottajakohtainen tunnus: Kohteen pysyvä tunnus RYTJ:n ulkopuolella, esimerkiksi tiedon tuottajan tietojärjestelmässä */\n tuottajakohtainentunnus?: string;\n /** Version käsittelijä: Version päivittäneen tai tallentaneen käyttäjän organisaatio. */\n versionkasittelija?: string;\n /**\n * Viimeisin muutos: Ajanhetki, jolloin objektiin on tehty viimeisin sisällöllinen muutos\n * @format date-time\n */\n viimeisinmuutos?: string;\n /**\n * Tallennusaika: Ajanhetki, jolloin tieto on tallennettu onnistuneesti RYTJ:ään\n * @format date-time\n */\n tallennusaika?: string;\n korvaaobjektin?: RYTJVersiointitiedot;\n korvattuobjektilla?: RYTJVersiointitiedot;\n}\n\nexport type QueryParamsType = Record;\nexport type ResponseFormat = keyof Omit;\n\nexport interface FullRequestParams extends Omit {\n /** set parameter to `true` for call `securityWorker` for this request */\n secure?: boolean;\n /** request path */\n path: string;\n /** content type of request body */\n type?: ContentType;\n /** query params */\n query?: QueryParamsType;\n /** format of response (i.e. response.json() -> format: \"json\") */\n format?: ResponseFormat;\n /** request body */\n body?: unknown;\n /** base url */\n baseUrl?: string;\n /** request cancellation token */\n cancelToken?: CancelToken;\n}\n\nexport type RequestParams = Omit;\n\nexport interface ApiConfig {\n baseUrl?: string;\n baseApiParams?: Omit;\n securityWorker?: (securityData: SecurityDataType | null) => Promise | RequestParams | void;\n customFetch?: typeof fetch;\n}\n\nexport interface HttpResponse extends Response {\n data: D;\n error: E;\n}\n\ntype CancelToken = Symbol | string | number;\n\nexport enum ContentType {\n Json = \"application/json\",\n FormData = \"multipart/form-data\",\n UrlEncoded = \"application/x-www-form-urlencoded\",\n Text = \"text/plain\",\n}\n\nexport class HttpClient {\n public baseUrl: string = \"https://kaavatietomalli.azurewebsites.net/api\";\n private securityData: SecurityDataType | null = null;\n private securityWorker?: ApiConfig[\"securityWorker\"];\n private abortControllers = new Map();\n private customFetch = (...fetchParams: Parameters) => fetch(...fetchParams);\n\n private baseApiParams: RequestParams = {\n credentials: \"same-origin\",\n headers: {},\n redirect: \"follow\",\n referrerPolicy: \"no-referrer\",\n };\n\n constructor(apiConfig: ApiConfig = {}) {\n Object.assign(this, apiConfig);\n }\n\n public setSecurityData = (data: SecurityDataType | null) => {\n this.securityData = data;\n };\n\n protected encodeQueryParam(key: string, value: any) {\n const encodedKey = encodeURIComponent(key);\n return `${encodedKey}=${encodeURIComponent(typeof value === \"number\" ? value : `${value}`)}`;\n }\n\n protected addQueryParam(query: QueryParamsType, key: string) {\n return this.encodeQueryParam(key, query[key]);\n }\n\n protected addArrayQueryParam(query: QueryParamsType, key: string) {\n const value = query[key];\n return value.map((v: any) => this.encodeQueryParam(key, v)).join(\"&\");\n }\n\n protected toQueryString(rawQuery?: QueryParamsType): string {\n const query = rawQuery || {};\n const keys = Object.keys(query).filter((key) => \"undefined\" !== typeof query[key]);\n return keys\n .map((key) => (Array.isArray(query[key]) ? this.addArrayQueryParam(query, key) : this.addQueryParam(query, key)))\n .join(\"&\");\n }\n\n protected addQueryParams(rawQuery?: QueryParamsType): string {\n const queryString = this.toQueryString(rawQuery);\n return queryString ? `?${queryString}` : \"\";\n }\n\n private contentFormatters: Record any> = {\n [ContentType.Json]: (input: any) =>\n input !== null && (typeof input === \"object\" || typeof input === \"string\") ? JSON.stringify(input) : input,\n [ContentType.Text]: (input: any) => (input !== null && typeof input !== \"string\" ? JSON.stringify(input) : input),\n [ContentType.FormData]: (input: any) =>\n Object.keys(input || {}).reduce((formData, key) => {\n const property = input[key];\n formData.append(\n key,\n property instanceof Blob\n ? property\n : typeof property === \"object\" && property !== null\n ? JSON.stringify(property)\n : `${property}`,\n );\n return formData;\n }, new FormData()),\n [ContentType.UrlEncoded]: (input: any) => this.toQueryString(input),\n };\n\n protected mergeRequestParams(params1: RequestParams, params2?: RequestParams): RequestParams {\n return {\n ...this.baseApiParams,\n ...params1,\n ...(params2 || {}),\n headers: {\n ...(this.baseApiParams.headers || {}),\n ...(params1.headers || {}),\n ...((params2 && params2.headers) || {}),\n },\n };\n }\n\n protected createAbortSignal = (cancelToken: CancelToken): AbortSignal | undefined => {\n if (this.abortControllers.has(cancelToken)) {\n const abortController = this.abortControllers.get(cancelToken);\n if (abortController) {\n return abortController.signal;\n }\n return void 0;\n }\n\n const abortController = new AbortController();\n this.abortControllers.set(cancelToken, abortController);\n return abortController.signal;\n };\n\n public abortRequest = (cancelToken: CancelToken) => {\n const abortController = this.abortControllers.get(cancelToken);\n\n if (abortController) {\n abortController.abort();\n this.abortControllers.delete(cancelToken);\n }\n };\n\n public request = async ({\n body,\n secure,\n path,\n type,\n query,\n format,\n baseUrl,\n cancelToken,\n ...params\n }: FullRequestParams): Promise> => {\n const secureParams =\n ((typeof secure === \"boolean\" ? secure : this.baseApiParams.secure) &&\n this.securityWorker &&\n (await this.securityWorker(this.securityData))) ||\n {};\n const requestParams = this.mergeRequestParams(params, secureParams);\n const queryString = query && this.toQueryString(query);\n const payloadFormatter = this.contentFormatters[type || ContentType.Json];\n const responseFormat = format || requestParams.format;\n\n return this.customFetch(`${baseUrl || this.baseUrl || \"\"}${path}${queryString ? `?${queryString}` : \"\"}`, {\n ...requestParams,\n headers: {\n ...(requestParams.headers || {}),\n ...(type && type !== ContentType.FormData ? { \"Content-Type\": type } : {}),\n },\n signal: cancelToken ? this.createAbortSignal(cancelToken) : requestParams.signal,\n body: typeof body === \"undefined\" || body === null ? null : payloadFormatter(body),\n }).then(async (response) => {\n const r = response as HttpResponse;\n r.data = null as unknown as T;\n r.error = null as unknown as E;\n\n const data = !responseFormat\n ? r\n : await response[responseFormat]()\n .then((data) => {\n if (r.ok) {\n r.data = data;\n } else {\n r.error = data;\n }\n return r;\n })\n .catch((e) => {\n r.error = e;\n return r;\n });\n\n if (cancelToken) {\n this.abortControllers.delete(cancelToken);\n }\n\n if (!response.ok) throw data;\n return data;\n });\n };\n}\n\n/**\n * @title Kaavatietomalli API\n * @version 0.0.1\n * @baseUrl https://kaavatietomalli.azurewebsites.net/api\n *\n * Tämä API on luotu RYTJ tietomallin mukaisesti. Tämä API palauttaa pääasiassa keksittyjä tietoja, osa tiedoista voi kuitenkin olla oikeanlaisia, kuten karttaan pohjautuvat geometriat. Yleisesti REST API toteutuksissa GET toiminnoilla haetaan tietoja, POST toiminnallisuuksilla tallennetaan tietoja, UPDATE toiminnoilla päivitetään tietoja ja DELETE toiminnoilla poistetaan tietoja.Tämän API:n tapauksessa POST-komennoilla voidaan myös päivittää tietoja, jos tieto on jo olemassa samalla tunnuksella, se tekee siitä uuden version jäettäen aikaisemmat tiedot talteen. Poiston avulla voi palauttaa aikaisemman version, jos sellainen on olemassa.POST ja DELETE toimintoihin tarvitsee API-avaimen, sen avulla voi avata lukot. API avainta ei saa käyttää suoraan avoimella Web-sivulla, jottei ulkopuolisit pääsisi selaimen kautta käsiksi avaimeen. Avain tulisi vaihtaa, jos on epäilys, että joku ulkopuolinen on päässyt käsiksi siihen. Huom, Get kyselyt pyytää selainta cachettamaan tuloksen päivän ajaksi, eli data ei päivity heti ellei vaihda kyselyn parametrejä tai pakota selainta hakemaan sen ilman cachea.Tätä 0.0.1 versiota tehtäessä RYTJ-tietomalli oli vasta kehitysvaiheessa ja oli osittain viallinen mallien linkityksien nimien suhteen. Esim. samalla mallilla saattoi olla useampi 'koostuu'- tai 'sisaltaa'-linkki, mutta JSON tiedostoon tulostui vain yksittäisen linkin tiedot. Tämän johdosta kaikkia tietomallin malleja ei voitu ottaa käyttöön.\n */\nexport class Api extends HttpClient {\n kaava = {\n /**\n * @description Hakee kaikki kaavat käyttäen viimeisintä versiointitietoa. Se ei lataa alitietoja, ellei niitä ole listattu **select** kentässä.\n *\n * @tags Kaava\n * @name KaavaGetAll\n * @summary Hakee kaikki kaavat\n * @request GET:/kaava\n */\n kaavaGetAll: (\n query?: {\n /**\n * Pilkulla eroteltu lista ladattavista alitiedoista. Alitiedojen alitiedot erotellaan pisteillä.\n * @example \"ylaluokka,koostuu\"\n */\n select?: string;\n /**\n * Sivustusta varten, tämän avulla voi kertoa mistä rivistä lähtien tietoja halutaan lukea.\n * @format int32\n * @example \"0\"\n */\n skip?: number;\n /**\n * Sivustusta varten, tämän avulla voidaan kertoa kuinka monta riviä halutaan lukea kerralla.\n * @format int32\n * @example \"10\"\n */\n take?: number;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/kaava`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Huom. **versiointitiedoissa** pitää antaa Identiteettitunnus. Palvelin kykenee täyttämään versiointitietojen muut tiedot itsenäisesti niitä ei tarvitse antaa.\n *\n * @tags Kaava\n * @name KaavaPost\n * @summary Tallentaa uuden version kaavasta ja sen sisällöstä, jos kaavaa ei ole olemassa, se luo ensimmäisen version.\n * @request POST:/kaava\n * @secure\n */\n kaavaPost: (\n data: RAKKaava,\n query?: {\n /** Salli vain luonti. Jos tämä on asetettu todeksi, ei se yritä päivittää olemassa olevaa. */\n createOnly?: boolean;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/kaava`,\n method: \"POST\",\n query: query,\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Hakee kaavan viimeisimmän version käyttäen versiointitietojen identiteetti tunnusta.\n *\n * @tags Kaava\n * @name KaavaGetById\n * @summary Hakee kaavan tunnuksella\n * @request GET:/kaava/{id}\n */\n kaavaGetById: (\n id: string,\n query?: {\n /**\n * Pilkulla eroteltu lista ladattavista tiedoista. Alitaulut erotellaan pisteillä.\n * @example \"ylaluokka,koostuu\"\n */\n select?: string;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/kaava/${id}`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Poistaa kaavan viimeisimmän version ja kaikki sen sisällöt. Jos deleteAllVersions on asetettu todeksi, niin se poistaa myös vanhemmat versiot.\n *\n * @tags Kaava\n * @name KaavaDelete\n * @summary Poistaa kaavan viimeisimmän version\n * @request DELETE:/kaava/{id}\n * @secure\n */\n kaavaDelete: (\n id: string,\n query?: {\n /** Jos tämä on asetettu todeksi, poistaa se myös kaikki vanhemmat versiot. */\n deleteAllVersions?: boolean;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/kaava/${id}`,\n method: \"DELETE\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Hakee kaikki kaavakohteen käyttäen viimeisintä versiontitietoa. Jos haluat ladata myös alikenttien tiedot, lisää niiden kenttien nimet **select** listaan.\n *\n * @tags Kaavakohde\n * @name KaavakohdeGetAll\n * @summary Hakee kaikki kaavakohteet kaavan tunnuksella\n * @request GET:/kaava/{kaavatunnus}/kaavakohde\n */\n kaavakohdeGetAll: (\n kaavatunnus: string,\n query?: {\n /**\n * Pilkulla eroteltu lista ladattavista tiedoista. Alitaulut erotellaan pisteillä.\n * @example \"kaavamaarays,kaavasuositus\"\n */\n select?: string;\n /**\n * Sivustusta varten, tämän avulla voi kertoa mistä rivistä lähtien tietoja halutaan lukea.\n * @format int32\n * @example \"0\"\n */\n skip?: number;\n /**\n * Sivustusta varten, tämän avulla voidaan kertoa kuinka monta riviä halutaan lukea kerralla.\n * @format int32\n * @example \"10\"\n */\n take?: number;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/kaava/${kaavatunnus}/kaavakohde`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Tallentaa kaavakohteita kaavaan\n *\n * @tags Kaavakohde\n * @name KaavakohdePost\n * @summary Kaavakohteiden lisäys/päivitys kaavaan\n * @request POST:/kaava/{kaavatunnus}/kaavakohde\n * @secure\n */\n kaavakohdePost: (kaavatunnus: string, data: RAKKaavakohde[], params: RequestParams = {}) =>\n this.request({\n path: `/kaava/${kaavatunnus}/kaavakohde`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Poistaa annetun kaavan kaikki kaavakohteet versiointitietoineen.\n *\n * @tags Kaavakohde\n * @name KaavakohdeDeleteAll\n * @summary Poistaa kaavan kaikki kaavakohteet\n * @request DELETE:/kaava/{kaavatunnus}/kaavakohde\n * @secure\n */\n kaavakohdeDeleteAll: (kaavatunnus: string, params: RequestParams = {}) =>\n this.request({\n path: `/kaava/${kaavatunnus}/kaavakohde`,\n method: \"DELETE\",\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Hakee kaikki kaavakohteen käyttäen viimeisintä versiontitietoa. Jos haluat ladata myös alikenttien tiedot, lisää niiden kenttien nimet **select** listaan.\n *\n * @tags Kaavakohde\n * @name KaavakohdeGet\n * @summary Hakee yksittäisen kaavakohteet tiedot tunnuksella\n * @request GET:/kaava/{kaavatunnus}/kaavakohde/{kaavakohteentunnus}\n */\n kaavakohdeGet: (\n kaavatunnus: string,\n kaavakohteentunnus: string,\n query?: {\n /**\n * Pilkulla eroteltu lista ladattavista tiedoista. Alitaulut erotellaan pisteillä.\n * @example \"kaavamaarays,kaavasuositus\"\n */\n select?: string;\n /**\n * Jos tämä asetettu, se palauttaa kaavakohteen version versiointitietojen tallennusajan perusteella. Muulloin se palauttaa viimeisimmän version.\n * @format date-time\n */\n versionDateAndTime?: string;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/kaava/${kaavatunnus}/kaavakohde/${kaavakohteentunnus}`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Poistaa kaavakohteen kaavan ja kaavakohteen tunnuksien avulla\n *\n * @tags Kaavakohde\n * @name KaavakohdeDelete\n * @summary Poistaa kaavakohteen\n * @request DELETE:/kaava/{kaavatunnus}/kaavakohde/{kaavakohdetunnus}\n * @secure\n */\n kaavakohdeDelete: (\n kaavatunnus: string,\n kaavakohdetunnus: string,\n query: {\n /** Poista vain viimeisin versio */\n onlyDeleteLatestVersion: boolean;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/kaava/${kaavatunnus}/kaavakohde/${kaavakohdetunnus}`,\n method: \"DELETE\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n };\n rakennuskohde = {\n /**\n * No description\n *\n * @tags Katselmus\n * @name KatselmusGetById\n * @summary Katselmusen haku rakennuskohteen tunnuksella\n * @request GET:/rakennuskohde/{id}/katselmus\n */\n katselmusGetById: (\n id: string,\n query?: {\n /** Pilkulla eroteltu lista ladattavista tiedoista. Alitaulut erotellaan pisteillä. */\n select?: string;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/rakennuskohde/${id}/katselmus`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Katselmusen tallennus ja päivitys rakennuskohteelle.\n *\n * @tags Katselmus\n * @name KatselmusPost\n * @summary Katselmuksen tallennus\n * @request POST:/rakennuskohde/{id}/katselmus\n * @secure\n */\n katselmusPost: (id: string, data: RAKKatselmus, params: RequestParams = {}) =>\n this.request({\n path: `/rakennuskohde/${id}/katselmus`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Rakennuskohteen tallennus. Ei päivitä olemassa olevia, jos löytyy tunnuksella.\n *\n * @tags Rakennus\n * @name RakennusPost\n * @summary Rakennuskohteen tallennus\n * @request POST:/rakennuskohde/{rakennuskohteentunnus}/rakennus\n * @secure\n */\n rakennusPost: (rakennuskohteentunnus: string, data: RAKRakennus, params: RequestParams = {}) =>\n this.request({\n path: `/rakennuskohde/${rakennuskohteentunnus}/rakennus`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Hakee kaikki rakennuskohteet käyttäen viimeisintä versiointitietoa. Se ei lataa alikenttien tietoja, ellei niitä ole listattu **select** kentässä.\n *\n * @tags Rakennuskohde\n * @name RakennuskohdeGetAll\n * @summary Hakee kaikki rakennuskohteet\n * @request GET:/rakennuskohde\n */\n rakennuskohdeGetAll: (\n query?: {\n /**\n * Pilkulla eroteltu lista ladattavista alitiedoista. Alitietojen alitiedot erotellaan pisteillä.\n * @example \"rakennuskohteentunnus\"\n */\n select?: string;\n /**\n * Sivustusta varten, tämän avulla voi kertoa mistä rivistä lähtien tietoja halutaan lukea.\n * @format int32\n * @example \"0\"\n */\n skip?: number;\n /**\n * Sivustusta varten, tämän avulla voidaan kertoa kuinka monta riviä halutaan lukea kerralla.\n * @format int32\n * @example \"10\"\n */\n take?: number;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/rakennuskohde`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Rakennuskohteen tallennus. Ei päivitä olemassa olevia, jos löytyy tunnuksella.\n *\n * @tags Rakennuskohde\n * @name RakennuskohdePost\n * @summary Rakennuskohteen tallennus\n * @request POST:/rakennuskohde\n * @secure\n */\n rakennuskohdePost: (data: RAKRakennuskohde, params: RequestParams = {}) =>\n this.request({\n path: `/rakennuskohde`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Rakennuskohteen haku tunnuksella VTJprt tunnuksella\n *\n * @tags Rakennuskohde\n * @name RakennuskohdeGetById\n * @summary Rakennuskohteen haku tunnuksella\n * @request GET:/rakennuskohde/{id}\n */\n rakennuskohdeGetById: (\n id: string,\n query?: {\n /**\n * Pilkulla eroteltu lista ladattavista tiedoista. Alitaulut erotellaan pisteillä.\n * @example \"rakennuskohteentunnus\"\n */\n select?: string;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/rakennuskohde/${id}`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Poistaa rakennuskohteen viimeisimmän version ja kaikki sen sisällöt. Jos deleteAllVersions on asetettu todeksi, niin se poistaa myös vanhemmat versiot.\n *\n * @tags Rakennuskohde\n * @name RakennuskohdeDelete\n * @summary Poistaa rakennuskohteen viimeisimmän version\n * @request DELETE:/rakennuskohde/{id}\n * @secure\n */\n rakennuskohdeDelete: (\n id: string,\n query?: {\n /** Jos tämä on asetettu todeksi, poistaa se myös kaikki vanhemmat versiot. */\n deleteAllVersions?: boolean;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/rakennuskohde/${id}`,\n method: \"DELETE\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n };\n paatos = {\n /**\n * No description\n *\n * @tags Paatos\n * @name PaatosGetById\n * @summary Päätöksen haku tunnuksella\n * @request GET:/paatos/{id}\n */\n paatosGetById: (\n id: string,\n query?: {\n /** Pilkulla eroteltu lista ladattavista tiedoista. Alitaulut erotellaan pisteillä. */\n select?: string;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/paatos/${id}`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Paatos\n * @name PaatosPutRakennuskohdeById\n * @summary Päätöksen haku tunnuksella\n * @request PUT:/paatos/{paatosId}/rakennuskohde/{rakennuskohdeId}\n * @secure\n */\n paatosPutRakennuskohdeById: (\n id: string,\n paatosId: string,\n rakennuskohdeId: string,\n query?: {\n /** Pilkulla eroteltu lista ladattavista tiedoista. Alitaulut erotellaan pisteillä. */\n select?: string;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/paatos/${paatosId}/rakennuskohde/${rakennuskohdeId}`,\n method: \"PUT\",\n query: query,\n secure: true,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Päätöksen tallennus.\n *\n * @tags Paatos\n * @name PaatosPost\n * @summary Päätöksen tallennus\n * @request POST:/paatos/{paatosId}/hakemus/{hakemusId}\n * @secure\n */\n paatosPost: (id: string, paatosId: string, hakemusId: string, data: RAKPaatos, params: RequestParams = {}) =>\n this.request({\n path: `/paatos/${paatosId}/hakemus/${hakemusId}`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n\n /**\n * No description\n *\n * @tags Rakentamishanke\n * @name RakentamishankeGetByIdViaPaatos\n * @summary Rakentamishankeen haku päätöksen tunnuksella\n * @request GET:/paatos/{id}/hanke\n */\n rakentamishankeGetByIdViaPaatos: (\n id: string,\n query?: {\n /** Pilkulla eroteltu lista ladattavista tiedoista. Alitaulut erotellaan pisteillä. */\n select?: string;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/paatos/${id}/hanke`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n };\n rakennus = {\n /**\n * @description Hakee kaikki rakennukset käyttäen rakennuskohteen viimeisintä versiointitietoa. Se ei lataa alikenttien tietoja, ellei niitä ole listattu **select** kentässä.\n *\n * @tags Rakennus\n * @name RakennusGetAll\n * @summary Hakee kaikki rakennukset\n * @request GET:/rakennus\n */\n rakennusGetAll: (\n query?: {\n /**\n * Pilkulla eroteltu lista ladattavista alitiedoista. Alitietojen alitiedot erotellaan pisteillä.\n * @example \"rakennuksenosa.huoneisto.koostuu,rakennuksenosa.tila3.tilanvaruste\"\n */\n select?: string;\n /**\n * Sivustusta varten, tämän avulla voi kertoa mistä rivistä lähtien tietoja halutaan lukea.\n * @format int32\n * @example \"0\"\n */\n skip?: number;\n /**\n * Sivustusta varten, tämän avulla voidaan kertoa kuinka monta riviä halutaan lukea kerralla.\n * @format int32\n * @example \"10\"\n */\n take?: number;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/rakennus`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Rakennuskohteen haku tunnuksella VTJprt tunnuksella\n *\n * @tags Rakennus\n * @name RakennusGetById\n * @summary Rakennuskohteen haku tunnuksella\n * @request GET:/rakennus/{id}\n */\n rakennusGetById: (\n id: string,\n query?: {\n /**\n * Pilkulla eroteltu lista ladattavista tiedoista. Alitaulut erotellaan pisteillä.\n * @example \"rakennuksenosa.huoneisto.koostuu,rakennuksenosa.tila3.tilanvaruste\"\n */\n select?: string;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/rakennus/${id}`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n };\n hakemus = {\n /**\n * No description\n *\n * @tags Rakentamishanke\n * @name RakentamishankeGetById\n * @summary Rakentamishankeen haku päätöksen tunnuksella\n * @request GET:/hakemus/{id}/hanke\n */\n rakentamishankeGetById: (\n id: string,\n query?: {\n /** Pilkulla eroteltu lista ladattavista tiedoista. Alitaulut erotellaan pisteillä. */\n select?: string;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/hakemus/${id}/hanke`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n\n /**\n * @description Rakentamishankeen tallennus, tämä lisää automaattisesti hakemuksen, jos sitä ei vielä ole.\n *\n * @tags Rakentamishanke\n * @name RakentamishankePost\n * @summary Rakentamishankkeen tallennus\n * @request POST:/hakemus/{id}/hanke\n * @secure\n */\n rakentamishankePost: (id: string, data: RAKRakentamishanke, params: RequestParams = {}) =>\n this.request({\n path: `/hakemus/${id}/hanke`,\n method: \"POST\",\n body: data,\n secure: true,\n type: ContentType.Json,\n format: \"json\",\n ...params,\n }),\n };\n versiointitiedot = {\n /**\n * @description Hakee versiontitietoja nimiavaruuden kanssa\n *\n * @tags Versiointitiedot\n * @name VersiointitiedotGet\n * @summary Hakee versiointitietoja\n * @request GET:/versiointitiedot\n */\n versiointitiedotGet: (\n query: {\n /**\n * Suodattaa hakua nimiavaruuden avulla\n * @example \"RAK_Kaava\"\n */\n nimiavaruus: string;\n /** Hakee vain viimeisimmät versiotiedot */\n onlyLatestVersions?: boolean;\n },\n params: RequestParams = {},\n ) =>\n this.request({\n path: `/versiointitiedot`,\n method: \"GET\",\n query: query,\n format: \"json\",\n ...params,\n }),\n };\n}\n","/** @jsx jsx */\r\nimport {jsx} from '@emotion/core'\r\nimport React from \"react\";\r\nimport { Accordion, AccordionDetails, AccordionSummary, Typography } from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport TaxBuilding from '../../../model/tax/taxBuilding';\r\nimport GeneralTableView from '../../../utils/GeneralTableView';\r\n\r\ninterface Props {\r\n data: TaxBuilding\r\n}\r\n\r\nclass RealEstateUnitView extends React.Component {\r\n constructor(props: Props) {\r\n super(props);\r\n this.state = {data: props.data};\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps: Props) {\r\n return {data: nextProps.data};\r\n }\r\n\r\n render() {\r\n const taxView: any = \r\n this.state.data === undefined || this.state.data === null\r\n ?
\r\n );\r\n};\r\n\r\ninterface Props {\r\n title: string\r\n}\r\n\r\nexport default Layout;\r\n","import React from \"react\";\r\nimport Layout from \"../common/Layout\";\r\nimport { Accordion, AccordionDetails, AccordionSummary, Grid, Typography } from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nconst Home: React.FC = () => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\">\r\n OmaRakennus testaa yhteentoimivia tietorakenteita\r\n \r\n \r\n \r\n Rakennettu ympäristö synnyttää jatkuvasti arvokasta tietoa, jonka avulla voimme\r\n vaikuttaa siihen, kuinka toimiva, terveellinen ja ilmastoviisas elinympäristömme\r\n on. Tällä hetkellä rakennettua ympäristöä koskeva laaja ja tärkeä tieto on\r\n hankalasti käytettävissä eri järjestelmissä ja valtakunnallisesti epäyhtenäistä.\r\n OmaRakennus on vuonna 2021 aloitettu testiprojekti, jonka tuloksena syntyy\r\n demo, jossa tarkoituksena on koota erilaisia rakennusta, kiinteistöä ja sen\r\n ympäristöä kuvaavia tietoja nähtäville. Projektia vetää ympäristöministeriön\r\n Ryhti-hanke (lue lisää Ryhti-hankkeesta) ja toteuttajana toimii Verohallinto.\r\n OmaRakennus-demo havainnollistaa, miten eri lähteistä tulevat tiedot voidaan\r\n koota. Demon toivotaan auttavan niitä, jotka kehittävät erilaisia palveluja ja\r\n jatkosovelluksia rakennetun ympäristön tiedoista.\r\n Vuonna 2022 demoa kehitetään tuomalla sinne uusia tietorakenteita Digi- ja\r\n väestötietoviraston Yhteentoimivuusalustalta. OmaRakennus on osa Aurora AI\r\n –verkostoa ja yksi MiniSuomi-kokeiluista.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\">\r\n Miten käytän demoa?\r\n \r\n \r\n \r\n Portaalin testidata on vapaasti hyödynnettävissä. Testaajat saavat rakentaa\r\n niiden avulla uusia innovatiivisia palveluita ja ehdottaa uusia tietokokonaisuuksia\r\n tai lähteitä lisättäväksi portaaliin.\r\n Portaalia pääsee tarkastelemaan kahta kautta:\r\n
\r\n
käyttöliittymässä navigoimalla eri välilehtien välillä, jotka sisältävät\r\n tietolähdekohtaisia tietoja rakennuksesta. Rakennus tunnistetaan sen\r\n pysyvällä rakennustunnuksella (PRT) ja rakennuksen alueidenkäytön\r\n suunnitelmista
\r\n
hyödyntämällä API:eja, joiden kautta käyttäjä pääsee käsiksi suoraan\r\n taustalla oleviin tietoihin. API:t löytyvät viimeisellä välilehdellä (API\r\n rajapinnat)
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\">\r\n Demon tietorakenteet löytyvät soveltamisprofiileina Yhteentoimivuusalustalta\r\n \r\n \r\n \r\n Kaikki joko käyttöliittymän tai sovellusliittymien kautta nähtäville saatava data on\r\n kuvattu semanttisesti yhteentoimivalla tavalla tietolähdekohtaisiksi\r\n sovellusprofiileiksi, jotka on luotu ja julkaistu valtiovarainministeriön ja Digi- ja\r\n väestötietoviraston kehittämällä Yhteentoimivuusalustalla. Soveltamisprofiilit pyrkivät kuvaamaan organisaatiokohtaisten tietojärjestelmien tai tietovarastojen\r\n sisältämää tietoa yhteistuotettujen, harmonisoitujen ja toimialuekohtaisten\r\n sanastojen avulla. Sanastot perustuvat toimialuekohtaisiin ontologioihin, jotka\r\n määrittelevät alan termit ja niiden taustalla olevat käsitteet.
\r\n Osa Yhteentoimivuusalustan tietorakenteista kuvaa tietojen nykyistä rakennetta\r\n olemassa olevissa tietojärjestelmissä (esim. ARA:n energiarekisteri ja DVV:n\r\n rakennus- ja huoneistorekisteri), mutta alustalle on tuotu myös sellaisia\r\n rakenteita, jotka ovat suunnitteilla ja olemassa vain tietomallina /\r\n komponenttikirjastona, eikä niillä ole vielä tosiasiallista sisältöä suomalaisessa\r\n yhteiskunnassa.
\r\n Linkit soveltamisprofiileihin löytyvät kohdasta “API rajapinnat” > “Käytetyt\r\n tietomallit”. Tällä hetkellä Yhteentoimivuusalusta toimii suomeksi ja ruotsiksi.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\">\r\n Demossa käytetty testidata\r\n \r\n \r\n \r\n Projektissa olemme kartoittaneet tietokuvaukset joko olemassa olevilla\r\n testitiedoilla eri rekistereistä tai muista tietolähteistä tai vaihtoehtoisesti luoneet\r\n omat testitietomme soveltamisprofiilin perusteella. Kannasta löytyy siis muiden\r\n tahojen tuottamaa testidataa ja itse keksimäämme testidataa.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\">\r\n Kehittäjälle\r\n \r\n \r\n \r\n Yksi liiketoimintalähtöinen ja "käsitteellinen" sovellusprofiili voidaan viedä\r\n teknisemmäksi kuvaukseksi eri tavoin (OpenAPI, RDF, JSON-LD tai muu).\r\n Nämä kuvaukset auttavat API-kehittäjiä luomaan OmaRakennus -portaalissa\r\n julkaistavia API:eja (ja käyttöliittymiä).
\r\n Koska kaikki käsitteet määrittävät ontologiat, toimialuekohtaiset sanastot sekä\r\n tietolähdekohtaiset sovellusprofiilit ovat linkitetty yhteen W3C Linked Data -\r\n standardien kautta, niin sekä käyttöliittymän että API:iden kautta käytettävä data\r\n on nimetty ja kuvattu johdonmukaisella ja semanttisesti yhteentoimivalla tavalla.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n OmaRakennus (MyBuilding) is an experimental project funded and lead by the Ministry of the\r\n Environment and executed by the Finnish Tax Administration, focusing on exposing a number of\r\n existing datasets describing the properties of a single building and it’s surrounding environment\r\n (like the real estate it’s located on). The project was initiated in Spring 2021 and will continue at\r\n least through 2022. During the project we will also look into new untapped data resources that\r\n either exist today but not in a digitally accessible format or are completely missing in the present\r\n day Finnish society. Stakeholders are invited to make use of the freely available test data and build\r\n innovative new services, suggesting new data sets or sources to be added to the portal.
\r\n The information in the portal can be accessed in two ways, either…
\r\n • by means of navigation in the UI between different tabs, that contain the data source\r\n specific information about a single building, identified through its “permanent building ID”\r\n (pysyvä rakennustunnus) \r\n • by means of connecting directly to the data through the underlying APIs, which are listed on\r\n the last tab (“API rajapinnat”)
\r\n All the data provided either through the UI or the APIs is described in a semantically interoperable\r\n way as data source specific application profiles, created and published on the Interoperability\r\n Platform, developed by the Ministry of Finance and the Finnish Digitalization Agency (a.k.a “Digital\r\n and Population Data Services Agency”). The application profiles are created by subject-matter\r\n experts, that strive to describe the data contained in organization specific data systems or data\r\n vaults with the help of co-produced, harmonized and domain-specific vocabularies, based on\r\n domain-specific ontologies defining terms and their underlying concepts. Links to the application\r\n profiles can be found under “API rajapinnat” > “Käytetyt tietomallit”. At present there is only limited\r\n information to be found in English, since the terms describing the data in most national registries\r\n lack official translations to other languages than Swedish.
\r\n In the project we have mapped these data descriptions with either existing test data from the\r\n different underlying registries or other data sources or alternatively generated our own test data\r\n based on the application profile. A single business-oriented and “conceptual” application profile can\r\n be exported as a more technical description (OpenAPI, RDF, JSON-LD or other) which assists the\r\n API developers in creating the APIs (and UIs) published in the OmaRakennus -portal. Since\r\n everything from the concept-defining ontologies, the domain-specific vocabularies as well as the\r\n data source specific application profiles is linked together through W3C Linked Data standards, the\r\n data accessed through both the UI and the APIs is named and described in a consistent and\r\n semantically interoperable way.\r\n \r\n \r\n \r\n
\r\n return (BuildingView);\r\n }\r\n}\r\n\r\nexport default RhrView;\r\n","import { SpawnSyncOptionsWithBufferEncoding } from \"child_process\";\r\nimport { BuildingPermit } from \"./model/buildingPermit\";\r\nimport { BuildingSpecification } from \"./model/buildingSpecification\";\r\nimport { UnitSpecification } from \"./model/unitSpecification\";\r\nimport { Description, Title } from \"./utils/tooltipUtil\";\r\nimport { Share as ShareClass } from \"./model/share\";\r\n\r\n/* eslint-disable */\r\n/* tslint:disable */\r\n/*\r\n * ---------------------------------------------------------------\r\n * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##\r\n * ## ##\r\n * ## AUTHOR: acacode ##\r\n * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##\r\n * ---------------------------------------------------------------\r\n */\r\n\r\n/**\r\n * Blablabla.\r\n */\r\n export interface GetBuildingsRequest {\r\n /** blablabla */\r\n OwnerIdentifier?: string;\r\n }\r\n\r\n /**\r\n * Blablabla.\r\n */\r\n export interface GetBuildingsResponse {\r\n /** Jonkinlainen lista rakennuksia. */\r\n Buildings?: Building[];\r\n }\r\n\r\n /**\r\n * Osoitetieto suomalaisen osoitejärjestelmän mukaisesti.\r\n */\r\n export interface Address {\r\n /** katua tai tietä tarkoittava paikannimi */\r\n kadunnimi?: string;\r\n\r\n /** osoitenumeroon kuuluva numero */\r\n osoitenumeronnumeroOsa?: string;\r\n\r\n /** kirjain, joka on lisätty kiinteistön osoitenumeroon silloin, kun alkuperäinen kiinteistö on jaettu kahdeksi tai useammaksi erilliseksi kiinteistöksi */\r\n osoitenumeronjakokirjain?: string;\r\n\r\n /** useamman kuin yhden huoneiston käsittävässä rakennuksessa tai rakennuksissa sijaitsevien huoneistojen tunnuksiin kuuluva kirjain */\r\n huoneistoTunnuksenKirjainosa?: string;\r\n\r\n /** useamman kuin yhden huoneiston käsittävässä rakennuksessa sijaitsevan huoneiston tunnukseen kuuluva numero */\r\n huoneistoTunnuksenNumero?: number;\r\n\r\n /** kirjain, joka on lisätty huoneistotunnuksen numero-osaan silloin, kun alkuperäinen huoneisto on jaettu kahdeksi tai useammaksi erilliseksi huoneistoksi */\r\n huoneistoTunnuksenJakokirjain?: string;\r\n\r\n /** opastava tieto, joka täydentää muita osoitetietoja */\r\n osoitteenlisamaare?: string;\r\n\r\n /** care of eli jonkun luona */\r\n co?: string;\r\n\r\n /** osoite, joka ilmaisee postin vastaanottajan vuokraamaa tai postinjakelijan osoittamaa postinjättöpaikkaa */\r\n postilokeroOsoite?: string;\r\n\r\n /** osoitteen osa, joka viittaa tiettyyn maantieteelliseen alueeseen tai organisaatioon */\r\n postitoimipaikka?: string;\r\n\r\n /** osoitteen numero-osa, joka viittaa postitoimipaikkaan */\r\n postinumero?: string;\r\n }\r\n\r\n /**\r\n * Varallisuussuhde ilmaisee osapuolen ja kiinteän varallisuuden omistus- tai hallintaoikeuden. Varallisuussuhteita ovat: omistussuhde, hallintaoikeussuhde, muu oikeus (metsänhakkuuoikeus, syytinkisuhde) sekä perintö- ja lahjaverotuksen varallisuuserien hallintaoikeuden suhteet.\r\n */\r\n export interface AssetRelation {\r\n /**\r\n * Varallisuussuhteen lajin alkamispäivämäärä. Esim. hallinta- tai omistusoikeuden siirtopäivä.\r\n * Luovutetun omaisuuden omistusaika (alku- ja loppupäivä) hankintameno-olettaman vähentämisessä.\r\n * Lahjoituspäivä = asiakkaan ilmoittama lahjan saantopäivä.\r\n * Omistuksen alkupäivä, yleensä kiinteistönluovutusilmoituksen vahvistamispäivä.\r\n * Omaisuuden omistusoikeuden siirtymispäivä (pp.kk.vvvv) luovuttajalta luovutuksensaajalle\r\n * @format date\r\n */\r\n startDate: string;\r\n\r\n /** Omistus-, hallinta, vuokra ymv suhteen tieto, että kohde on omistajan tai haltijan asumiskäytössä */\r\n residentialUse: boolean;\r\n\r\n /** Ostajakohtainen tieto. Tieto saadaan varainsiirtoveroilmoituksen kohdasta Kauppahinta ja muut vastikkeet yhteensä, josta on vähennetty luku kohdasta Osuutesi osakkeisiin kohdistuvasta yhtiölainasta luku tai Osuutesi yhtiölainaosuudesta tai Yhtiölainaosuus. */\r\n purchasePrice: number;\r\n\r\n /** Hallinta- tai omistusoikeuden tmv. oikeuden osuus varallisuudesta. Tai hankinnan kohteen osuus varallisuuteen. Osuus ilmoitetaan murtolukuna. */\r\n shareOfAssetsAsFraction: string;\r\n\r\n /**\r\n * Tieto kertoo mihin sopimukseen tai tapahtumaan saanto perustuu. Tieto saadaan ostajan varainsiirtoveroilmoitukselta tai ASREK tietovirran perusteella tai muista prosesseista saatavista omistajavaihdostiedoista. Saantolajeja voi olla yksi tai useampi.\r\n *\r\n * Saantolajit (laaditaan koodisto):\r\n * - Kauppa\r\n * - Erittelemätön perhe- tai perintöoikeudellinen saanto\r\n * - Vaihtokauppa\r\n * - Pakkohuutokauppa\r\n * - Apportti tai muu pääomansijoitus\r\n * - Perustajaosakas\r\n * - Muu\r\n * - Ositus\r\n * - Erottelu\r\n * - Perinnönjako\r\n * - Testamentti (PELA)\r\n * - Lahja (PELA)\r\n * - Perintö (PELA)\r\n */\r\n acquisitionType: string;\r\n\r\n /** Varallisuussuhteita ovat Omistus- ja hallintaoikeus, Hallintaoikeus, Omistusoikeus sekä Muu oikeus. */\r\n assetRelationType: string;\r\n\r\n /** Varallisuuskohde, joka on lajiltaan kiinteistön maapohja. */\r\n groundAsset: Ground;\r\n\r\n /** Rakennus, joka lasketaan oikeudenhaltijan varallisuussuhteen mukaiseksi varallisuudeksi. */\r\n buildingAsset: Building;\r\n }\r\n\r\n /**\r\n * Rakennus on yksi osapuolen varallisuuden laji. Se on kiinteä tai paikallaan pidettäväksi tarkoitettu rakennelma, rakenne tai laitos.\r\n */\r\n export interface Building {\r\n /** Rakennuksen tai sen osan pääasiallinen käyttötarkoitus. */\r\n purposeOfUse?: \"Rakennusluokitus\";\r\n\r\n /** Rakennuksen pysyvä tunnus. */\r\n permanentBuildingCode?: string;\r\n\r\n /** paikka, jossa jokin sijaitsee */\r\n location?: Location;\r\n\r\n /** Kerrosala poikkeaa normaalisti rakennuksen tietona esitettävästä pinta-alasta. Kerrosalaan ei lasketa ullakolla tai kellarissa sijaitsevia, muita kuin pääasiallisen käyttötarkoituksen mukaisia tiloja. */\r\n floorArea?: number;\r\n\r\n /** Rakennuksen osien yhteenlaskettu tilavuus. */\r\n totalBuildingVolume: number;\r\n\r\n /** Rakennuksen kaikkien osien yhteenlaskettu kokonaisala. */\r\n totalBuildingArea: number;\r\n\r\n /** Rakennuksen yksilöivä nimitieto, esimerkiksi asiakkaan rakennukselle antama nimi. */\r\n nameOfBuilding: string;\r\n\r\n /** Arvostamisen vuoksi rakennus joudutaan tietyissä tilanteissa jakamaan osiin. */\r\n sectionOfTheBuilding: SectionOfTheBuilding;\r\n\r\n UnitSpecifications: UnitSpecification[];\r\n\r\n BuildingSpecifications: BuildingSpecification;\r\n\r\n BuildingPermit: BuildingPermit[];\r\n }\r\n\r\n\r\n /**\r\n * Maapohja on osapuolen varallisuuden laji, osa kiinteistöä. Kiinteistö koostuu yhdestä tai useammasta maapohjasta, joihin kiinteistö jaetaan arvostamista varten. Saman kiinteistön eri maapohjiin voidaan soveltaa eri kiinteistöveroprosenttia maapohjan käytön mukaan. Maapohja voi olla myös kiinteistöverosta vapaa.\r\n */\r\n export interface Ground {\r\n /**\r\n * Päivämäärä, josta lähtien maapohja on olemassa Verohallinnon kiinteistötietokannassa.\r\n * @format date\r\n */\r\n startDate: string;\r\n\r\n /** Maankäyttö- ja rakennuslaissa määritellyn maankäyttösuunnitelman tai -rajoituksen luokittelu. Arvot asemakaava, ranta-asemakaava, ei asemakaavaa. (tässä kokeilussa koodistoksi valittu RYTJ:in kaavalaji-koodisto) */\r\n zoningPlanType: string\r\n | \"1\"\r\n | \"11\"\r\n | \"12\"\r\n | \"2\"\r\n | \"21\"\r\n | \"22\"\r\n | \"23\"\r\n | \"24\"\r\n | \"25\"\r\n | \"26\"\r\n | \"3\"\r\n | \"31\"\r\n | \"32\"\r\n | \"33\"\r\n | \"34\"\r\n | \"35\"\r\n | \"36\";\r\n\r\n /** Asema- tai ranta-asemakaavaan merkitty korttelin tai sen osan käyttötarkoitusmerkintä. Verohallinto käyttää Ympäristöministeriön maankäyttö- ja rakennuslain mukaisissa kaavoissa käytettävistä merkinnöistä antaman asetuksen (2000) mukaista luokitusta. Verohallinnon kiinteistötietoihin merkitty kaavan mukainen käyttötarkoitus voi siis poiketa kunnan asemakaavan kaavamerkinnästä, sillä asemakaavassa voidaan käyttää kuntakohtaisia tarkenteita. Asemakaava-alueella sijaitsevaan maapohjaan sovelletava aluehinta määräytyy kaavan mukaisen käyttötarkoituksen perusteella. */\r\n zoningPlanUse: string;\r\n\r\n /**\r\n * Päivämäärä, jona maapohjan voimassaolo lakkaa.\r\n * @format date\r\n */\r\n endDate: string;\r\n\r\n /** Maapohjan pinta-ala. */\r\n area: number;\r\n\r\n /** Kunnalta saatava tieto rakennusoikeudesta (k-m2). Tieto voi olla maapohjatyypeillä rakennusmaa, muu maa ja 3D-kiinteistö. */\r\n buildingRight: number;\r\n }\r\n\r\n /**\r\n * Kohteen sijainti, joka voidaan esittää mm. koordinaattitietona tai tietyn osoitejärjestelmän osoitteena.\r\n */\r\n export interface Location {\r\n /** sijaintipaikan osoittavien tietojen kokonaisuus */\r\n address: Address;\r\n }\r\n\r\n /**\r\n * Henkilö, jolla on oikeus varallisuuteen, tässä tapauksessa kiinteistöön ja mahdollisiin rakennuksiin. Mitä jos oikeus kohdistuu vain rakennukseen?\r\n */\r\n export interface Person {\r\n /** henkilön yksilöivä tunnus, jonka toimivaltainen viranomainen on antanut henkilölle */\r\n personalIdentityCode?: string;\r\n\r\n /** henkilön kaikki etunimet lueteltuna */\r\n givenNames?: string;\r\n\r\n /** sukunimen lisänä käytettävä rekisteröidyn henkilönnimen osa, joka ei viittaa henkilön sukuun */\r\n givenName?: string;\r\n\r\n /** pääasiallisesti sukuun viittaava rekisteröidyn henkilönnimen osa */\r\n familyName?: string;\r\n\r\n /** Henkilön varallisuuteen kuuluva kiinteistö. */\r\n kiinteisto: RealEstateUnit[];\r\n }\r\n\r\n /**\r\n * Kiinteistö on yksi osapuolen varallisuuden laji, jolla on omia muista varallisuuden lajeista poikkeavia ominaisuuksia.\r\n\r\n Kiinteistöllä tarkoitetaan kiinteistöverolaissa tonttia, tilaa ja muuta Suomessa olevaa itsenäistä omistuksen yksikköä, joka on merkitty tai olisi merkittävä kiinteistönä kiinteistörekisterilaissa tarkoitettuun kiinteistörekisteriin.\r\n */\r\n export interface RealEstateUnit {\r\n /** Kiinteistötunnus on Maanmittauslaitoksen antama, kiinteistön yksilöivä tunnus, joka muodostuu neliosaisesta numerosarjasta. Verohallinnon tietokannassa kiinteistötunnus on muotoa xxx-xxx-xxxx-xxxx. */\r\n propertyIdentifier?: string;\r\n\r\n /** Kiinteistölle Maanmittauslaitoksen kiinteistörekisteriin merkitty nimi. */\r\n nameOfRealEstateUnit?: string;\r\n\r\n /**\r\n * Kiinteistön alkupäivä Verohallinnon kiinteistötiedoissa. Ensisijaisesti sama päivämäärä, jona kiinteistö on rekisteröity Maanmittauslaitokseen kiinteistörekisteriin.\r\n * @format date\r\n */\r\n startDate: string;\r\n\r\n /** Kiinteistön kaikkien maapohjien ja erottamattomien määräalojen yhteenlaskettu pinta-ala. */\r\n totalArea: string;\r\n\r\n /**\r\n * Päivämäärä, josta lähtien kiinteistö lakkaa olemasta aktiivisena Verohallinnon kiinteistötiedoissa. Yleensä MML:n kiiinteistörekisteriin merkitty lakkaamispäivä tai määräaloilla lohkomispäivä.\r\n * @format date\r\n */\r\n endDate: string;\r\n\r\n /** Kunta, jonka alueella kiinteistö sijaitsee. */\r\n municipalityOfLocation: string;\r\n\r\n /** Varallisuussuhde ilmaisee osapuolen ja kiinteän varallisuuden omistus- tai hallintaoikeuden. Varallisuussuhteita ovat: omistussuhde, hallintaoikeussuhde, muu oikeus (metsänhakkuuoikeus, syytinkisuhde) sekä perintö- ja lahjaverotuksen varallisuuserien hallintaoikeuden suhteet. */\r\n varallisuussuhde: AssetRelation;\r\n\r\n hallintakohteet: HallintaKohde[];\r\n rakennustiedot: Rakennustiedot;\r\n }\r\n\r\n export interface HallintaKohde {\r\n hallintakohdetyyppi: string;\r\n paahallintakohde: string;\r\n huoneistonumero: string;\r\n jakokirjain: string;\r\n porras: string;\r\n lakkaamispvm: string;\r\n tunnus: string;\r\n muutospvmOsakehuone: string;\r\n tietolahde: string;\r\n poikkeavaHuoneistonumero: string;\r\n autopaikkatyyppi: string;\r\n sijaintikerros: string;\r\n rekisterointipvm: string;\r\n huoneistotyyppi: string;\r\n pysyvahuoneistotunnus: string;\r\n paakayttotarkoitus: string;\r\n muukayttotarkoitus: string;\r\n omistaja: string;\r\n }\r\n\r\n export interface Rakennustiedot {\r\n sijainti: string;\r\n valmistumisvuosi: string;\r\n pysyvarakennustunnus: string;\r\n huoneistoala: string;\r\n perusparannuspaivamaara: string;\r\n kerrosluku: string;\r\n kerrosala: string;\r\n rakennustunnus: string;\r\n kaavatilanne: string;\r\n kantavienrakenteidenrakennusaine: string;\r\n aanestysaluenumero: string;\r\n kellariala: string;\r\n paaasiallinenlammitystapa: string;\r\n omistaja: string;\r\n rakennuksenliittymatiedot: string;\r\n kiinteisto: string;\r\n sijaintikunta: string;\r\n valmistumispaivamaara: string;\r\n julkisivumateriaali: string;\r\n kokonaisala: string;\r\n poikkeamispaatos: string;\r\n rakennuksentilavuus: string;\r\n kayttotarkoitus: string;\r\n paaasiallinenlammitysaine: string;\r\n perusparannus: string;\r\n rakennuksenkaytossaolo: string;\r\n }\r\n\r\n /**\r\n * List of buildings to be selected from the grid\r\n */\r\n export interface Buildings {\r\n PermanentBuildingID: string;\r\n BuildingID: string;\r\n OwnerID: string;\r\n CompletionYear: number;\r\n }\r\n\r\n /**\r\n * Building address details as received from MML API\r\n */\r\n interface BuildingAddress {\r\n featureClass?: string;\r\n locationId?: string;\r\n addressId?: string;\r\n version?: string;\r\n sourceId?: string;\r\n startTime?: string;\r\n versionStartTime?: string;\r\n versionEndTime?: string;\r\n endTime?: string;\r\n dataSource?: string;\r\n sourceModificationTime?: string;\r\n verificationDate?: string;\r\n updateReason?: string;\r\n VTJprt?: string;\r\n propertyIdentifier?: string;\r\n validFrom?: string;\r\n validUntil?: string;\r\n nameFI?: string;\r\n nameSV?: string;\r\n nameSE?: string;\r\n number?: string;\r\n municipality?: string;\r\n targetType?: string;\r\n priority?: string;\r\n }\r\n\r\n interface BuildingGeometry {\r\n type: string;\r\n coordinates: number[];\r\n }\r\n\r\n /**\r\n * Detailed information about the building\r\n */\r\n export class Building {\r\n @Title(\"Rakennustunnus (pysyvä)\")\r\n @Description(\"Tunnus, jolla rakennus yksilöidään koko sen elinkaaren ajaksi. Pysyvä rakennustunnus ei sisällä mitään informaatiota rakennuksen sijaintikiinteistöstä tai -kunnasta.\")\r\n PermanentBuildingID: string = \"\";\r\n @Title(\"Muuttuva rakennustunnus\")\r\n @Description(\"Rakennuksen yksilöivä tunnus, joka muodostuu sijaintikiinteistön voimassaolevasta kiinteistötunnuksesta ja sen tarkistemerkistä sekä rakennuksen järjestysnumerosta kiinteistöllä.\\n\\nMuuttuva rakennustunnus on VTJ:n näkökulmasta poistuva tunnus.\")\r\n BuildingID?: string;\r\n OwnerID: string = \"\";\r\n @Title(\"Valmistumisvuosi\")\r\n @Description(\"valmistumisajankohta päivämäärän tarkkuudella ilmaistuna\")\r\n CompletionYear?: number;\r\n @Title(\"Valmistumispäivämäärä\")\r\n @Description(\"Tieto siitä, minä vuonna rakennus on valmistunut. Tätä tietoa käytetään jos rakennuksen valmistumisajankohtaa ei voida ilmaista päivämäärän tarkkuudella.\")\r\n CompletionDate?: string;\r\n @Title(\"Rakennusluokka 2018\")\r\n @Description(\"Tilastokeskuksen määrittelemä rakennusluokitus 2018\")\r\n BuildingCategory2018?: string;\r\n @Title(\"Käyttötarkoitus\")\r\n @Description(\"Rakennuksen pääasiallinen käyttötarkoitus Tilastokeskuksen vahvistaman rakennusluokituksen mukaisesti. (ks. JHS 186)\")\r\n IntendedUse: number = 0;\r\n @Title(\"Sijaintikunta\")\r\n @Description(\"kunta, jossa kohde sijaitsee\")\r\n LocationMunicipality?: string;\r\n @Title(\"Äänestysaluenumero\")\r\n @Description(\"Suomen vaaleissa käytettävä äänestysalueen numero\")\r\n VotingArea: number = 0;\r\n @Title(\"Kerrosala\")\r\n @Description(\"kerrosten alat ulkoseinien ulkopinnan mukaan laskettuina sekä se kellarikerroksen tai ullakon ala, johon sijoitetaan tai voidaan näiden tilojen sijainnista, yhteyksistä, koosta, valoisuudesta ja muista ominaisuuksista päätellen sijoittaa rakennuksen pääasiallisen käyttötarkoituksen mukaisia tiloja\")\r\n FloorArea?: number;\r\n @Title(\"Kaavatilanne\")\r\n @Description(\"alueella voimassaolevan maankäytön suunnitelman laji\")\r\n AreaPlan: number = 0;\r\n @Title(\"Huoneistoala\")\r\n @Description(\"huoneistoa ympäröivien seinien sisäpintojen mukaan laskettu pinta-ala. Pinta-alaan lasketaan mukaan vain se osa, jossa huonekorkeus ylittää 160 cm.\")\r\n LivingArea: number = 0;\r\n @Title(\"Kokonaisala\")\r\n @Description(\"kaikkien kerrosten, kellareiden ja lämpöeristettyjen ullakoiden pinta-ala yhteensä ulkomitoin. Kokonaisalaan ei lasketa parvekkeita, katoksia eikä 160 cm:ä matalampia tiloja.\")\r\n TotalArea: number = 0;\r\n @Title(\"Kellariala\")\r\n @Description(\"Kellarikerrosten yhteenlaskettu pinta-ala. Kellarikerroksen pinta-ala on kellarikerrosta ympäröivien seinien ulkopintojen rajoittama ala. Mukaan ei lasketa 160 cm:ä matalampia tiloja.\\n\\nKellarikerroksiksi luetaan kaikki kokonaan tai pääasiallisesti maanpinnan alapuolella olevat kerrokset.\")\r\n BasementArea: number = 0;\r\n @Title(\"Rakennuksen tilavuus\")\r\n @Description(\"Rakennuksen tilavuus lasketaan sen tilan perusteella, jota rajoittavat ulkoseinien ulkopinnat, alapohjan alapinta ja yläpohjan yläpinta.\")\r\n BuildingVolume: string = \"\";\r\n @Title(\"Kerrosluku\")\r\n @Description(\"Rakennuksen maanpäällisten kerrosten lukumäärä.\\n\\nKerroslukuun lasketaan kaikki ne kokonaan tai pääasiallisesti maanpinnan yläpuolella olevat kerrokset (=ei kellarikerrokset), joissa on asuin- tai työ (toimi-) tiloja tai rakennuksen pääasiallisen käyttötarkoituksen mukaisia tiloja.\")\r\n NumberOfFloors: number = 0;\r\n @Title(\"Rakennuksen käytössäolo\")\r\n @Description(\"Rakennuksen käytön tilanne. Rakennuksen käytössäolotieto päätellään mm. asumistietojen perusteella VTJ:ssä.\")\r\n BuildingUsage: number = 0;\r\n @Title(\"Pääasiallinen lämmitystapa\")\r\n @Description(\"Rakennuksen tärkein lämmitystapa.\")\r\n MainHeatingMethod: string = \"\";\r\n @Title(\"Pääasiallinen lämmitysaine\")\r\n @Description(\"Rakennuksen tärkein polttoaine tai lämmönlähde.\")\r\n MainHeatingAgent: string = \"\";\r\n @Title(\"Kantavien rakenteiden rakennusaine\")\r\n @Description(\"Kantavien rakenteiden pääasiallinen rakennusaine.\")\r\n LoadBearingStructureMaterial: string = \"\";\r\n @Title(\"Julkisivumateriaali\")\r\n @Description(\"Materiaali, josta rakennuksen julkisivu on pääasiallisesti rakennettu.\")\r\n FacadeMaterial: string = \"\";\r\n @Title(\"Poikkeamispäätöksen syy\")\r\n @Description(\"Tieto siitä mistä syystä poikkeamislupaa on haettu, käytännössä joko rakennuskielto tai \\\"muu syy\\\".\")\r\n DeviationDecisionReason: string = \"\";\r\n @Title(\"Perusparannus\")\r\n @Description(\"Tieto siitä, onko rakennus perusparannettu (vai ei).\")\r\n Renovation: boolean = false;\r\n @Title(\"Perusparannuspäivämäärä\")\r\n @Description(\"Päivämäärä, jolloin rakennusluvan mukainen perusparannus on valmistunut.\")\r\n RenovationDate: string = \"\";\r\n\r\n taxData?: taxData;\r\n\r\n Location?: {\r\n Address?: BuildingAddress;\r\n Geometry?: BuildingGeometry;\r\n }\r\n\r\n Owner?: {\r\n Type: boolean;\r\n Name?: string;\r\n //Details: Company | Person;\r\n }\r\n\r\n Shares?: ShareClass[];\r\n Equipments?: Equipment[];\r\n UnitEquipments?: UnitEquipment[];\r\n RealEstateInfo?: RealEstate;\r\n }\r\n\r\n export interface RealEstate {\r\n PermanentBuildingID: string; \r\n Rekisteriyksikkolaji: string; \r\n Nimi: string; \r\n Kiinteistotunnus: string; \r\n RekisterointiPvm: string; \r\n MaapintaAala: number | null; \r\n VesipintaAla: number | null; \r\n LakkaamisPvm: string | null; \r\n Omistaja: string | null; \r\n Sijainti: string | null; \r\n }\r\n \r\n export interface Equipment {\r\n ID: string;\r\n OwnerID: string;\r\n Name: string;\r\n NumVal: number;\r\n FloatVal: number;\r\n StrVal: string;\r\n BoolVal: number;\r\n }\r\n\r\n export interface UnitEquipment {\r\n Name: string;\r\n Value: string;\r\n BoolVal: number;\r\n }\r\n\r\n export interface Share {\r\n PermanentBuildingID: string;\r\n BuildingID: string;\r\n Code: string;\r\n ShareGroupCode: string;\r\n Shares: string;\r\n Type: string;\r\n Unit: string;\r\n Specifier: string;\r\n Name: string;\r\n Share: string;\r\n }\r\n\r\n export interface Company {\r\n ID: string;\r\n CompanyName: string;\r\n PlaceOfBusiness: string;\r\n CompanyForm: string;\r\n Status: number;\r\n State: string;\r\n Code: string;\r\n }\r\n\r\n export interface Person {\r\n ID: string;\r\n FirstNames: string;\r\n LastName: string;\r\n Birthday: string;\r\n Gender: number;\r\n PrimaryLanguage: string;\r\n Nationality: string;\r\n MaritalStatus: number;\r\n ChildCount: number;\r\n HasTrustee: number;\r\n HasProtectionOrder: number;\r\n DateOfDeath: string;\r\n Code: string;\r\n HomeMunicipality: string;\r\n }\r\n\r\n export interface taxData {\r\n nameOfRealEstateUnit: string;\r\n municipalityOfLocation: string;\r\n startDate: string;\r\n endDate: string;\r\n assetsData?: string;\r\n }\r\n /**\r\n * Arvostamisen vuoksi rakennus joudutaan tietyissä tilanteissa jakamaan osiin.\r\n */\r\n export interface SectionOfTheBuilding {\r\n /** Päivämäärä, jolloin rakennusta (rakennuksen osaa) on alettu rakentaa. Vanhemmilla rakennuksilla ei ole aloittamispäivää, ainoastaan valmistumisvuosi. */\r\n startDate: string;\r\n\r\n /** Pysäköintitalo -rakennustyypin ominaisuustieto, yksikkö kpl. */\r\n numberOfParkingSpaces: number;\r\n\r\n /** Asuinkerrostalo -rakennustyypin ominaisuustieto. Arvot: kyllä/ei. */\r\n elevator: boolean;\r\n\r\n /** Pientalo (paritalot, rivitalot) ja asuinkerrostalo -rakennustyyppien ominaisuustieto (kpl). */\r\n numberOfApartments: number;\r\n\r\n /** Kaikkien rakennustyyppien ominaisuustieto. Arvot: Puu, Kivi/metalli. Tieto vaikuttaa sovellettavaan ikäalennusprosenttiin. */\r\n bearingStructure: string;\r\n\r\n /** Asuinkerrostalo ja myymälärakennus -rakennustyyppien ominaisuustieto. */\r\n floorHeight: string;\r\n\r\n /** Kerrosten lukumäärä. Asuinkerrostalo, myymälärakennus ja muu rakennus -rakennustyyppien ominaisuustieto (kpl). */\r\n numberOfFloors: number;\r\n\r\n /** Rakennuksen tai sen osan kokonaisala eli pinta-ala ulkomitoin sisältäen kaikkien kerrosten, kellareiden ja lämpöeristettyjen ullakkohuoneiden pinta-alat. Kokonaisalaan ei lasketa parvekkeita, katoksia eikä tiloja, joissa vapaa korkeus on alle 160 cm. */\r\n totalArea: string;\r\n\r\n /** Pientalo -rakennustyypin ominaisuustieto. Arvot keskuslämmitys, muu kuin keskuslämmitys. */\r\n heating: string;\r\n\r\n /** Eri kohteisiin kohdistuvat peruskorjaukset vähentävät ikäalennuksia eri prosenttiyksikkömäärän. Kohteena voi olla seuraavat: Lämmitysjärjestelmä, Vesijohto ja viemäri, Sähkölaitteet, Ovet ja ikkunat, Vesikate ja ulkoseinien pinnoite, Ulkopuolinen lisäeriste, Koneellinen ilmastointi, Muu. */\r\n // renovationObject: 01 | 02 | 03 | 04 | 05 | 06 | 07 | 99;\r\n\r\n /** Tieto esiintyy muodossa peruskorjausvuosi ja perusparannusvuosi. Kuvaa vuotta, jona peruskorjaukset on tehty. Jos peruskorjaushanke on kestänyt useita vuosia, korjausten valmistumisvuosi. */\r\n renovationYear: string;\r\n buildingType: number;\r\n\r\n /** Pientalo ja vapaa-ajan asunto -rakennustyyppien ominaisuustieto. Arvot: kyllä/ei. Rakennuksessa katsotaan olevan sähkö, kun rakennus on liitetty sähköverkkoon tai siihen johdetaan 230V sähkövirta riippumatta sähköenergian tuotantotavasta. */\r\n electricity: boolean;\r\n\r\n /** Rakennuksen tai sen osan tilavuus kuutiometreinä */\r\n volume: number;\r\n\r\n /**\r\n * Päivämäärä, jolloin rakennus katsotaan valmistuneeksi. Rakennus katsotaan kiinteistöverotuksessa valmistuneeksi silloin, kun rakennukselle on myönnetty käyttöönottolupa.\r\n * @format date\r\n */\r\n dateOfCompletion: string;\r\n\r\n /** Vuosi, jonka viimeiseen päivään mennessä rakennus katsotaan valmistuneeksi. */\r\n yearOfCompletion: number;\r\n\r\n /** Pientalo- ja vapaa-ajan asunto -rakennustyyppien ominaisuustieto. Arvot: kyllä/ei. Vesijohtona pidetään sellaista rakennukseen kiinteästi asennettua vesijohtojärjestelmää, johon vesi tulee alueellisesta vesijohtoverkostosta tai kaivosta (rengas- tai porakaivo) joko paineella tai pumpulla. */\r\n water: boolean;\r\n\r\n /** Pientalon ja vapaa-ajan asunto -rakennustyyppien ominaisuustieto. Viemärinä pidetään sellaista rakennukseen kiinteästi asennettua viemäröintijärjestelmää, joka päättyy alueelliseen viemäriverkostoon, saostus- tai umpikaivoon tai pienpuhdistamoon. */\r\n sewer: boolean;\r\n }\r\n","export default {\r\n RHR: process.env.REACT_APP_API_RHR_ENDPOINT || 'https://rhrapibackend.azurewebsites.net/api',\r\n MML: process.env.API_MML_ENDPOINT || 'https://beta-paikkatieto.maanmittauslaitos.fi/address-kky/features/v1/collections/address/items?VTJprt=',\r\n TAX_ADMINISTRATION: 'https://taxadministrationapi.azurewebsites.net/api/buildings/',\r\n SERVICE_PLAN: 'https://taxadministrationapi.azurewebsites.net/api/',\r\n ENERGY: 'https://energiatodistus.azurewebsites.net/api/buildings/',\r\n BUILDINGPERMIT_API: 'https://rakentamislupaapi.azurewebsites.net/api/',\r\n REALESTATE: 'https://ktjapifunction.azurewebsites.net/api',\r\n BUILDING_PLAN_API: 'https://kaavatietomalli.azurewebsites.net/api',\r\n PROPERTY_API: 'https://kiinteistorekisteri.azurewebsites.net/api',\r\n HUONEISTOTIEDOT_API: process.env.REACT_APP_HUONEISTOTIEDOT_API_ENDPOINT || 'https://huoneistotiedotapi.azurewebsites.net/api'\r\n}\r\n","import { Title } from '../utils/tooltipUtil';\r\nimport { Description } from \"../utils/tooltipUtil\";\r\n\r\nexport class BuildingPermit {\r\n @Title(\"Rakennuslupatunnus\")\r\n @Description(\"rakennusluvan yksilöivä tunnus, joka koostuu kuntanumerosta, tunnusjärjestysnumerosta, myöntämiskuukaudesta ja myöntämisvuodesta\")\r\n PermitID: string = \"\";\r\n @Title(\"Rakennuslupalaji\")\r\n @Description(\"VTJ:ssä rakennukseen kohdistuva toimenpide, kattaa sekä uudisrakentamisen, laajennuksen, uudisrakentamiseen verrattavat muutostyöt sekä muun muutosrakentamisen\")\r\n BuildingPermitType: string = \"\";\r\n @Title(\"Rakentamistapa\")\r\n @Description(\"kuvaa rakennuksen rungon pääasiallisen rakennustavan\")\r\n ConstructionMethod: string = \"\";\r\n @Title(\"Pääasiallinen rakentaja\")\r\n @Description(\"kuvaa onko rakentaminen ollut liiketaloudellista vai muuta rakentamista\")\r\n MainBuilder: string = \"\";\r\n @Title(\"Uusien asuntojen lukumäärä\")\r\n @Description(\"Rakennukseen tulevien uusien asuntojen lukumäärä\")\r\n NewAppartmentsCount: string = \"\";\r\n @Title(\"Uusien asuntojen pinta-ala\")\r\n @Description(\"Rakennukseen tulevien uusien asuntojen lukumäärä\")\r\n NewAppartmentsArea: string = \"\";\r\n @Title(\"Muutostyön laji\")\r\n @Description(\"Muutostyöhön liittyvä kooditieto, jonka arvoja voivat olla: perusparannukseksi katsottava muutos, pääasiallisen käyttötarkoituksen muutos, perustusten ja kantavien rakenteiden muutos, muu muutostyö\")\r\n ChangeWorkType: string = \"\";\r\n @Title(\"Rakentamisen alkamispäivämäärä\")\r\n @Description(\"Rakennusluvan mukaisen rakennuksen toteuttamisen aloittamispäivämäärä\")\r\n StartDate: Date = new Date();\r\n @Title(\"Valmistumispäivämäärä\")\r\n @Description(\"Rakennusvalvontaviranomaisen ilmoittama luvan mukaisen toimenpiteen valmistumisajankohta päivämäärän tarkkuudella ilmaistuna\")\r\n CompletionDate: Date = new Date();\r\n @Title(\"Jatkoajan päättymispäivämäärä\")\r\n @Description(\"Rakennusvalvontaviranomaisen myöntämä rakennusluvan jatkoajan päättymispäivämäärä (alkuperäisen voimassaoloalan päättymisen jälkeen annettu uusi päättymisajankohta)\")\r\n ExtensionDate: Date = new Date();\r\n @Title(\"Poistopäivämäärä\")\r\n @Description(\"Päivämäärä, jolloin rakennusluvan voimassaoloaika päättyy esimerkiksi rakennushankkeen raukeamisen vuoksi\")\r\n ExpiryDate: Date = new Date();\r\n @Title(\"Rakennuksen tiedot\")\r\n @Description(\"Rakennuksen tiedot rakennusluvassa\")\r\n BuildingData: string = \"\";\r\n @Title(\"Lupahuoneiston tiedot\")\r\n @Description(\"tiedot rakennusluvan mukaisista huoneistotiedoista, joita ollaan vasta toteuttamassa\")\r\n ApartmentPermitInformation: string = \"\";\r\n @Title(\"Rakennuksen laajennustiedot\")\r\n @Description(\"Rakennuslupaan liitetyt rakennuksen laajennukseen liittyvät tiedot\")\r\n BuildingExtensionInformation: string = \"\";\r\n}\r\n ","import { Title, Description } from \"../utils/tooltipUtil\";\r\nimport { Base } from \"./base\";\r\n\r\nexport class Property extends Base {\r\n @Title(\"Kiinteistötunnus\")\r\n @Description(\"Kiinteistörekisteriin merkityn rekisteriyksikön yksilöivä tunnus\")\r\n RealEstateId: string = \"\";\r\n @Title(\"Kiinteistölaji\")\r\n @Description(\"Kiinteistörekisteriin merkittävä rekisteriyksikön laji\")\r\n PropertyType: string = \"\";\r\n @Title(\"Nimi\")\r\n @Description(\"Kiinteistön (KTJ:n rekisteriyksikön) nimi\")\r\n Name: string = \"\";\r\n @Title(\"Rekisteröintipäivämäärä\")\r\n @Description(\"Päivämäärä, jolloin kiinteistö (rekisteriyksikkö) on merkitty Kiinteistörekisteriin\")\r\n RegistrationDate: Date = new Date();\r\n @Title(\"Lakkaamispäivämäärä\")\r\n @Description(\"Päivämäärä, jolloin kiinteistö (rekisteriyksikkö) on poistettu Kiinteistörekisteristä\")\r\n ExpiryDate: Date = new Date();\r\n @Title(\"Maapinta-ala\")\r\n @Description(\"Kiinteistön maa-alueen pinta-ala (neliömetreinä?)\")\r\n LandArea: number = 0;\r\n @Title(\"Vesipinta-ala\")\r\n @Description(\"Kiinteistön (rekisteriyksikön) vesialueen pinta-ala neliömetreinä\")\r\n WaterArea: number = 0;\r\n @Title(\"Omistaja\")\r\n @Description(\"Kiinteistön omistaja eli toimija, jolle on myönnetty lainhuuto\")\r\n OwnerShip: OwnerShip[] = [];\r\n @Title(\"Sijainti\")\r\n @Description(\"paikka, jossa jokin sijaitsee\")\r\n Location: Location = new Location();\r\n}\r\n\r\nexport class OwnerShip extends Base {\r\n @Title(\"Henkilöomistaja\")\r\n @Description(\"Kiinteistön omistava henkilö\")\r\n Owner: Owner = new Owner();\r\n @Title(\"Omistusosuus\")\r\n @Description(\"Pitääkö jakaa osoittajaan ja nimittäjään (kokonaislukuja?)\")\r\n Share: number = 1;\r\n @Title(\"Saanto\")\r\n @Description(\"Omistajan omistusoikeuden perustana oleva saanto\")\r\n Rule: Rule | null = null; \r\n}\r\n\r\nexport class Owner extends Base {\r\n @Title(\"Etunimet\")\r\n @Description(\"henkilön kaikki etunimet lueteltuna\")\r\n FirstNames: string = \"\";\r\n @Title(\"Sukunimi\")\r\n @Description(\"pääasiallisesti sukuun viittaava rekisteröidyn henkilönnimen osa\")\r\n LastName: string = \"\";\r\n @Title(\"Syntymäpäivä\")\r\n @Description(\"Henkilön syntymäpäivämäärä\")\r\n \r\n BirthDate: Date = new Date();\r\n @Title(\"Kuolinpäivä\")\r\n @Description(\"Henkilön kuolinpäivämäärä\")\r\n \r\n DateOfDeath?: Date;\r\n @Title(\"Ulkomaalainen\")\r\n @Description(\"Tieto siitä onko henkilö Suomen vai muun valtion kansalainen\")\r\n \r\n Resident: boolean = true;\r\n @Title(\"Henkilötunnus\")\r\n @Description(\"Henkilön suomalainen henkilötunnus\")\r\n \r\n PersonalId: string = \"\";\r\n}\r\n\r\nexport class Rule extends Base {\r\n @Title(\"Saantolaji\")\r\n @Description(\"Kiinteistön omistusoikeuden perusteena olevan saannon laji\")\r\n \r\n RuleType: string = \"\";\r\n @Title(\"Saantopäivämäärä\")\r\n @Description(\"Omistusoikeuden siirtymisen päivämäärä saannon perusteella\")\r\n \r\n RuleDate: Date = new Date();\r\n @Title(\"Vastike\")\r\n @Description(\"Saannon vastike, esim. kaupassa kauppahinta valuutassa (yleensä euroja)\")\r\n \r\n Compensation: Compensation = new Compensation();\r\n}\r\n\r\nexport class Compensation extends Base {\r\n @Title(\"Määrä\")\r\n @Description(\"määrän määritelmä\")\r\n \r\n Amount: number = 0;\r\n @Title(\"Valuuttatunnus\")\r\n @Description(\"Valuuttatunnus\")\r\n \r\n Currency: string = \"\";\r\n}\r\n\r\nexport class Location extends Base {\r\n @Title(\"Osoite\")\r\n @Description(\"sijaintipaikan osoittavien tietojen kokonaisuus\")\r\n \r\n Address: Address = new Address();\r\n @Title(\"Sijaintikunta\")\r\n @Description(\"kunta, jossa kohde sijaitsee\")\r\n \r\n Municipality: Municipality = new Municipality();\r\n}\r\nexport class Municipality extends Base {\r\n @Title(\"Nimi\")\r\n @Description(\"Kunnan nimi\")\r\n \r\n Name: string = \"\";\r\n @Title(\"Kuntanumero\")\r\n @Description(\"Digi- ja väestötietoviraston (DVV) kunnalle antama kolminumeroinen tunnus\")\r\n \r\n MunicipalityNumber: string = \"\";\r\n}\r\n\r\nexport class Address extends Base {\r\n @Title(\"Kadun nimi\")\r\n @Description(\"Kadun tai vastaavan kulkuväylän tms. nimi suomalaisessa osoitejärjestelmässä.\")\r\n \r\n StreetName: string = \"\";\r\n @Title(\"Postitoimipaikka\")\r\n @Description(\"Postitoimipaikka\")\r\n \r\n PostalDistrict: string = \"\";\r\n\r\n @Title(\"Postinumero\")\r\n @Description(\"Postinumero\")\r\n \r\n PostalCode: string = \"\";\r\n}\r\n","import { Address, Property, Location, Municipality, OwnerShip, Rule, Compensation, Owner } from \"../model/property\";\r\n\r\nexport class ParsingUtils {\r\n public static CastObject(obj: any, instantiator: () => T, skipNulls: boolean = true): T {\r\n var object = instantiator() as any;\r\n \r\n if (obj !== undefined && obj !== null) {\r\n var keys = Object.keys(obj);\r\n\r\n if (skipNulls) {\r\n keys = keys.filter(k => obj[k] !== null);\r\n }\r\n\r\n keys.forEach(key=>object[key]=obj[key]);\r\n }\r\n return object;\r\n //return { ...obj, ...object};\r\n //return object;\r\n }\r\n\r\n public static CastObjectArray(obj: any, instantiator: () => T): T[] {\r\n var array = [] as T[];\r\n \r\n if (obj !== undefined && obj.length > 0) {\r\n obj.forEach((element: T) => {\r\n array.push(ParsingUtils.CastObject(element, instantiator));\r\n });\r\n }\r\n\r\n return array;\r\n }\r\n\r\n public static ParseProperty(prop: any): Property\r\n {\r\n var p = new Property();\r\n p.RealEstateId = prop.RealEstateId;\r\n p.PropertyType = prop.PropertyType;\r\n p.Name = prop.Name;\r\n p.RegistrationDate = prop.RegistrationDate;\r\n p.ExpiryDate = prop.ExpiryDate;\r\n p.LandArea = prop.LandArea;\r\n p.WaterArea = prop.WaterArea;\r\n p.Location = new Location();\r\n p.Location.Address = new Address();\r\n p.Location.Municipality = new Municipality();\r\n p.Location.Address.StreetName = prop.Location.Address.StreetName;\r\n p.Location.Address.PostalDistrict = prop.Location.Address.PostalDistrict;\r\n p.Location.Address.PostalCode = prop.Location.Address.PostalCode;\r\n\r\n p.Location.Municipality.Name = prop.Location.Municipality.Name;\r\n p.Location.Municipality.MunicipalityNumber = prop.Location.Municipality.MunicipalityNumber;\r\n\r\n if (prop.OwnerShip !== null) {\r\n p.OwnerShip = prop.OwnerShip.map((o: any) => {\r\n var ownership = new OwnerShip();\r\n ownership.Share = o.Share;\r\n if (o.Rule !== null) {\r\n ownership.Rule= new Rule();\r\n ownership.Rule.RuleDate= o.Rule.RuleDate;\r\n ownership.Rule.Compensation = new Compensation();\r\n ownership.Rule.Compensation.Amount= o.Rule.Compensation !== null ? o.Rule.Compensation.Amount : undefined;\r\n ownership.Rule.Compensation.Currency = o.Rule.Compensation !== null ? o.Rule.Compensation.Currency : undefined;\r\n }\r\n else{\r\n ownership.Rule = null;\r\n }\r\n ownership.Owner = new Owner();\r\n ownership.Owner.BirthDate = o.Owner.BirthDate;\r\n ownership.Owner.FirstNames = o.Owner.FirstNames;\r\n ownership.Owner.LastName = o.Owner.LastName;\r\n ownership.Owner.PersonalId = o.Owner.PersonalId;\r\n ownership.Owner.Resident = o.Owner.Resident\r\n\r\n return ownership;\r\n });\r\n }\r\n\r\n return p;\r\n }\r\n}\r\n","import { Description, Title } from \"../utils/tooltipUtil\";\r\n\r\nexport class BuildingSpecification {\r\n @Title(\"Rakennustunnus (pysyvä)\")\r\n @Description(\"Tunnus, jolla rakennus yksilöidään koko sen elinkaaren ajaksi. Pysyvä rakennustunnus ei sisällä mitään informaatiota rakennuksen sijaintikiinteistöstä tai -kunnasta.\")\r\n PermanentBuildingID?: string;\r\n @Title(\"Viemäriliittymä\")\r\n @Description(\"Tieto siitä onko rakennus liitetty kunnalliseen viemäriverkostoon.\")\r\n SewerConnection?: boolean;\r\n @Title(\"Vesijohtoliittymä\")\r\n @Description(\"tieto siitä onko rakennus liitetty kunnalliseen vesijohtoverkkoon\")\r\n WaterSupplyConnection: boolean = false;\r\n @Title(\"Sähköverkkoliittymä\")\r\n @Description(\"Tieto siitä onko rakennus liitetty sähköverkkoon.\")\r\n ElectricityConnection: boolean = false;\r\n @Title(\"Kaapeliliittymä\")\r\n @Description(\"Tieto siitä onko rakennus liitetty alueella käytössä olevaan tietoliikenne-, puhelin- tai kaapelitelevisioverkkoon.\")\r\n CableConnection: boolean = false;\r\n @Title(\"Sähkövaruste\")\r\n @Description(\"Tieto siitä onko rakennukseen asennettu sähköjärjestelmä ja siihen liittyvät sähkön käyttöön tarpeelliset varusteet.\")\r\n ElectricalEquipment: boolean = false;\r\n @Title(\"Kaasuvaruste\")\r\n @Description(\"Tieto siitä onko rakennukseen asennettu kaasujärjestelmä ja kaasun käytön mahdollistavat varusteet.\")\r\n GasSupply: boolean = false;\r\n @Title(\"Jätevesiviemäri\")\r\n @Description(\"Tekninen rakennelma/järjestelmä, joka mahdollistaa jäteveden poistamisen rakennuksesta määräysten vaatimalla tavalla.\")\r\n Sewage: boolean = false;\r\n @Title(\"Vesijohto\")\r\n @Description(\"vesijohdon määritelmä\")\r\n Waterpipe: boolean = false;\r\n @Title(\"Lämmin vesi\")\r\n @Description(\"lämpimän veden määritelmä\")\r\n WarmWater: boolean = false;\r\n @Title(\"Koneellinen ilmastointi\")\r\n @Description(\"koneellisen ilmastoinnin määritelmä\")\r\n Airconditioning: boolean = false;\r\n @Title(\"Aurinkopaneeli\")\r\n @Description(\"aurinkopaneelin määritelmä\")\r\n SolarPanel: boolean = false;\r\n @Title(\"Hissi\")\r\n @Description(\"hissin määritelmä\")\r\n Elevator: boolean = false;\r\n @Title(\"Uima-allas\")\r\n @Description(\"uima-altaan määritelmä\")\r\n SwimmingPool: boolean = false;\r\n @Title(\"Sauna\")\r\n @Description(\"saunan määritelmä\")\r\n Sauna: boolean = false;\r\n @Title(\"Väestönsuoja\")\r\n @Description(\"Väenstonsuojan määritelmä\")\r\n Shelter: boolean = false;\r\n @Title(\"Väestösuoja henkilömäärä\")\r\n @Description(\"Väestösuojan kapasiteetti suurimman sallitun henkilömäärän mukaisesti ilmaistuna.\")\r\n ShelterCapacity: number = 0;\r\n}","import { Description, Title } from \"../utils/tooltipUtil\";\r\n\r\nexport class UnitSpecification {\r\n @Title(\"Huoneistotunnus (pysyvä)\")\r\n @Description(\"Huoneistotunnus on jokaiselle huoneistolle ja uudisrakennushankkeen huoneistolle annettava 10-merkkinen tunnus.\")\r\n PermanentShareID?: string;\r\n @Title(\"Huoneistotunnuksen jakokirjain\")\r\n @Description(\"kirjain, joka on lisätty huoneistotunnuksen numero-osaan silloin, kun alkuperäinen huoneisto on jaettu kahdeksi tai useammaksi erilliseksi huoneistoksi\")\r\n huoneistoTunnuksenJakokirjain?: string;\r\n @Title(\"Huoneistotunnuksen kirjainosa\")\r\n @Description(\"useamman kuin yhden huoneiston käsittävässä rakennuksessa tai rakennuksissa sijaitsevien huoneistojen tunnuksiin kuuluva kirjain\")\r\n huoneistoTunnuksenKirjainosa?: string;\r\n @Title(\"Huoneistotunnuksen numero-osa\")\r\n @Description(\"useamman kuin yhden huoneiston käsittävässä rakennuksessa sijaitsevan huoneiston tunnukseen kuuluva numero\")\r\n huoneistoTunnuksenNumero?: number;\r\n @Title(\"Huoneistotyyppi\")\r\n @Description(\"Esimerkiksi \\\"2h+k\\\" tai \\\"3h+k+s\\\".\")\r\n Specifier?: string;\r\n @Title(\"Osoitejärjestysnumero\")\r\n @Description(\"Tieto siitä, mikä rakennuksen osoitteista on huoneiston osoite.\")\r\n osoitejarjestysnumero?: number;\r\n @Title(\"Hallintaperustelaji\")\r\n @Description(\"Tieto siitä, mihin huoneiston hallinta perustuu. VTJ:ssä käytössä ovat esim. rakennuksen omistajuus, huoneiston omistajuus, huoneiston vuokraus tai asumisoikeus.\")\r\n hallintaperustelaji?: string;\r\n @Title(\"Huoneiston käytössäolo\")\r\n @Description(\"Tieto siitä, onko huoneisto käytössä ja minkälaista tämä käyttö on. VTJ:ssä sallittuja arvoja ovat esim. vakinaisessa asuinkäytössä, toimitila- tai tuotantokäytössä, käyttö loma-asuntona tai tyhjillään.\")\r\n huoneistonkaytossaolo?: string;\r\n @Title(\"Huoneistoala\")\r\n @Description(\"huoneistoa ympäröivien seinien sisäpintojen mukaan laskettu pinta-ala. Pinta-alaan lasketaan mukaan vain se osa, jossa huonekorkeus ylittää 160 cm.\")\r\n Area?: number;\r\n @Title(\"Huoneiden lukumäärä\")\r\n @Description(\"Huoneeksi katsotaan rakennuksessa oleva tila, jota ympäröivät lattia, katto ja seinät. Huoneiden lukumäärään ei lasketa keittiötä.\")\r\n Rooms?: number;\r\n @Title(\"Keittiölaji\")\r\n @Description(\"Tieto siitä, minkälainen keittiö huoneistossa on. VTJ:ssä sallittuja arvoja ovat esim. keittiö, keittokomero ja keittotila.\")\r\n KitchenType?: string;\r\n @Title(\"Muuttovalmis\")\r\n @Description(\"\")\r\n muuttovalmis?: string;\r\n @Title(\"Muuttokielto\")\r\n @Description(\"Tieto siitä, että asuinkäyttöön rakennettuun huoneistoon ei saa muuttaa asumaan vakinaisesti.\")\r\n muuttokielto?: string;\r\n @Title(\"Alkunumero\")\r\n @Description(\"Numerosarjan ensimmäinen numero.\")\r\n ShareStart?: number;\r\n @Title(\"Loppunumero\")\r\n @Description(\"Numerosarjan viimeinen numero.\")\r\n ShareEnd?: number;\r\n @Title(\"Pääkäyttötarkoitus\")\r\n @Description(\"Hallintakohteen pääkäyttötarkoitus.\")\r\n IntendedUse?: number;\r\n @Title(\"Hallintakohdetyyppi\")\r\n @Description(\"Hallintakohdetyyppi voi olla huoneisto, autopaikka tai muu tila. Koodisto.\")\r\n Type?: string;\r\n @Title(\"Porras\")\r\n @Description(\"Portaan tunniste. Esimerkiksi \\\"A\\\".\")\r\n Stair?: string;\r\n @Title(\"Huoneistonumero\")\r\n @Description(\"Huoneistonumero\")\r\n Number?: number;\r\n @Title(\"Sijaintikerros\")\r\n @Description(\"Sijaintikerros\")\r\n Floor?: number;\r\n \r\n \r\n \r\n @Title(\"WC\")\r\n @Description(\"Käymälä, jossa ihmisen eritteet huuhdotaan veden avulla viemäriverkostoon.\")\r\n Toilet?: boolean;\r\n @Title(\"Suihku\")\r\n @Description(\"Tieto siitä, onko huoneiston varusteena suihku.\")\r\n Shower?: boolean;\r\n @Title(\"Sauna\")\r\n @Description(\"Tieto siitä, onko huoneisto varustettu saunalla. Saunan lajia ei ole määritelty VTJ:ssä.\")\r\n Sauna?: boolean;\r\n @Title(\"Parveke\")\r\n @Description(\"Parveke tai terassi, johon johtaa ovi rakennuksen sisältä.\")\r\n Balcony?: boolean;\r\n @Title(\"Lämmin vesi\")\r\n @Description(\"Tieto siitä, tuleeko huoneistoon lämmin vesi.\")\r\n WarmWater?: boolean;\r\n}","import { Description, Title } from \"../utils/tooltipUtil\";\r\n\r\nexport class Share {\r\n @Title(\"Tunnus\")\r\n @Description(\"Autopaikan tai muut tilan tunnus. Esimerkiksi \\\"AP1\\\".\")\r\n Code?: string;\r\n @Title(\"Osakeryhmätunnus\")\r\n @Description(\"Osakeryhmän yksilöivä tunnus. Yksilöi koko aineistossa. Muodoltaan tunnus on 16 merkkiä pitkä. Se sisältää 14 aakkosnumeerista merkkiä (kaksi ensimmäistä tunnuksen muodostaja KR =kaupparekisteri tai OH = osakehuoneistorekisteri) ja lopussa kaksinumeroisen tarkistusnumeron, esimerkiksi KRD7AR4QP2NRHP97.\")\r\n ShareGroupCode?: string;\r\n @Title(\"Osakkeet\")\r\n @Description(\"Osakkeet\")\r\n Shares?: string;\r\n @Title(\"Asuntomuoto\")\r\n @Description(\"Asuntomuoto\")\r\n Type?: string;\r\n @Title(\"Huoneistonumero\")\r\n @Description(\"Huoneistonumero\")\r\n Unit?: string;\r\n @Title(\"Lisätiedot\")\r\n @Description(\"Lisätiedot\")\r\n Specifier?: string;\r\n @Title(\"Nimi\")\r\n @Description(\"Huoneiston nimi\")\r\n Name?: string;\r\n @Title(\"Osakejako\")\r\n @Description(\"Osakejako\")\r\n Share?: string;\r\n}","/**\r\n * Tämän tiedoston luokat on tehty seuraavan tietomallin pohjalta:\r\n * Huoneistotiedot OmaRakennus-kokeiluprojektissa\r\n * https://tietomallit.suomi.fi/model/huontest\r\n */\r\n\r\nimport { Description, Title } from \"../utils/tooltipUtil\";\r\nimport { Base } from \"./base\";\r\n\r\nexport class Hallintakohde extends Base {\r\n @Title(\"Pysyvä huoneistotunnus\")\r\n @Description(\"Pysyvä huoneistotunnus (VTJ-PHT) on jokaiselle huoneistolle ja uudisrakennushankkeen huoneistolle annettava 10-merkkinen tunnus.\")\r\n pysyvahuoneistotunnus?: string;\r\n @Title(\"Päähallintakohde\")\r\n @Description(\"Tieto kertoo, onko hallintakohde osakeryhmän päähallintakohde. Esimerkki: Osakeryhmä voi antaa hallintaoikeuden huoneistoon sekä siihen liittyvään autopaikkaan ja muuhun tilaan, jolloin huoneisto on päähallintakohde.\")\r\n paahallintakohde?: string;\r\n @Title(\"Hallintakohdetyyppi\")\r\n @Description(\"Hallintakohdetyyppi voi olla huoneisto, autopaikka tai muu tila. Koodisto.\")\r\n hallintakohdetyyppi?: string;\r\n @Title(\"Porras\")\r\n @Description(\"Portaan tunniste. Esimerkiksi \\\"A\\\".\")\r\n porras?: string;\r\n @Title(\"Huoneistonumero\")\r\n @Description(\"Huoneistonumero\")\r\n huoneistonumero?: number;\r\n @Title(\"Huoneistotunnuksen jakokirjain\")\r\n @Description(\"Huoneistotunnuksen jakokirjain\")\r\n jakokirjain?: string;\r\n @Title(\"Poikkeava huoneistonumero\")\r\n @Description(\"Poikkeava huoneistonumero\")\r\n poikkeavaHuoneistonumero?: string;\r\n @Title(\"Tunnus\")\r\n @Description(\"Autopaikan tai muut tilan tunnus. Esimerkiksi \\\"AP1\\\".\")\r\n tunnus?: string;\r\n @Title(\"Tietolähde\")\r\n @Description(\"Tietolähde voi olla Kaupparekisteri tai Yhtiö. Koodisto.\")\r\n tietolahde?: string;\r\n @Title(\"Huoneistotyyppi\")\r\n @Description(\"Esimerkiksi \\\"2h+k\\\" tai \\\"3h+k+s\\\".\")\r\n huoneistotyyppi?: string;\r\n @Title(\"Sijaintikerros\")\r\n @Description(\"Sijaintikerros\")\r\n sijaintikerros?: string;\r\n @Title(\"Autopaikkatyyppi\")\r\n @Description(\"Autopaikkatyyppi\")\r\n autopaikkatyyppi?: string;\r\n @Title(\"Rekisteröintipäivämäärä\")\r\n @Description(\"Päivä, jolloin hallintakohteen syntyminen on rekisteröity kaupparekisteriin.\")\r\n rekisterointipvm?: string;\r\n @Title(\"Lakkaamispäivämäärä\")\r\n @Description(\"Päivä, jolloin hallintakohteen lakkaaminen on rekisteröity kaupparekisteriin.\")\r\n lakkaamispvm?: string;\r\n @Title(\"Muutospäivämäärä Osakehuoneistorekisterissä\")\r\n @Description(\"Viimeisin muutosaikaleima osakehuoneistorekisterissä.\")\r\n muutospvmOsakehuoneistorekisterissa?: string;\r\n @Title(\"Pääkäyttötarkoitus\")\r\n @Description(\"Hallintakohteen pääkäyttötarkoitus.\")\r\n paakayttotarkoitus?: Paakayttotarkoitus;\r\n @Title(\"Muu käyttötarkoitus\")\r\n @Description(\"Hallintakohteen muu käyttötarkoitus.\")\r\n muukayttotarkoitus?: MuuKayttotarkoitus;\r\n}\r\n\r\nexport class LuonnollinenHenkilo extends Base {\r\n @Title(\"Etunimet\")\r\n @Description(\"Henkilön kaikki etunimet lueteltuna.\")\r\n etunimet?: string;\r\n @Title(\"Sukunimi\")\r\n @Description(\"Pääasiallisesti sukuun viittaava rekisteröidyn henkilönnimen osa.\")\r\n sukunimi?: string;\r\n @Title(\"Henkilötunnus\")\r\n @Description(\"Henkilön yksilöivä tunnus, jonka toimivaltainen viranomainen on antanut henkilölle.\")\r\n henkilotunnus?: string;\r\n}\r\n\r\nexport class JuridinenHenkilo extends Base {\r\n @Title(\"Toiminimi\")\r\n @Description(\"Organisaatio joka harjoittaa elinkeinotoimintaa käyttää yleensä elikeino- eli yritystoiminnassaan toiminimeksi rekisteröityä nimeään.\")\r\n toiminimi?: string;\r\n @Title(\"Y-tunnus\")\r\n @Description(\"Organisaation yritys- ja yhteisötunnus.\")\r\n ytunnus?: string;\r\n @Title(\"Organisaatiomuoto\")\r\n @Description(\"Ammatin- tai liikkeenharjoittajan tai yhteisön oikeudellinen muoto.\")\r\n organisaatiomuoto?: string;\r\n}\r\n\r\nexport class Kunta extends Base {\r\n @Title(\"Kuntatunnus\")\r\n @Description(\"Kolminumeroinen kuntatunnus etunollineen.\")\r\n kuntatunnus?: string;\r\n @Title(\"Nimet\")\r\n @Description(\"Kunnan nimet eri kielillä.\")\r\n nimet?: string;\r\n}\r\n\r\nexport class Maa extends Base {\r\n @Title(\"Maatunnus\")\r\n @Description(\"Kolminumeroinen maatunnus ISO 3166-1 -standardin mukaan etunollineen.\")\r\n maatunnus?: string;\r\n @Title(\"Nimet\")\r\n @Description(\"Maan nimet eri kielillä.\")\r\n nimet?: string;\r\n}\r\n\r\nexport class MuuKayttotarkoitus extends Base {\r\n @Title(\"Käyttötarkoitus\")\r\n @Description(\"Koodisto, joka on joko huoneiston käyttötarkoitus, autopaikan käyttötarkoitus tai muun tilan käyttötarkoitus.\")\r\n kayttotarkoitus?: string;\r\n @Title(\"Selite\")\r\n @Description(\"Käyttötarkoitukseen 999=Muu liittyvä yksikielinen seliteteksti.\")\r\n selite?: string;\r\n @Title(\"Järjestysnumero\")\r\n @Description(\"Järjestysnumeroilla osoitetaan käyttötarkoitusten tärkeysjärjestys. Pienimmällä järjestysnumerolla oleva käyttötarkoitus on tärkein.\")\r\n jarjestysnumero?: string;\r\n}\r\n\r\nexport class Nimi extends Base {\r\n @Title(\"Nimi\")\r\n @Description(\"Nimi.\")\r\n nimi?: string;\r\n @Title(\"Kieli\")\r\n @Description(\"Kieli, jolla nimi on tallennettu.\")\r\n kieli?: string;\r\n}\r\n\r\nexport class Omistaja extends Base {\r\n @Title(\"Henkilöomistaja\")\r\n @Description(\"Osakeryhmän omistava henkilö.\")\r\n henkiloomistaja?: LuonnollinenHenkilo;\r\n @Title(\"Organisatioomistaja\")\r\n @Description(\"Osakeryhmän omistava organisaatio.\")\r\n organisatioomistaja?: JuridinenHenkilo;\r\n @Title(\"Omistusosuuden nimittäjä\")\r\n @Description(\"Omistusosuuden nimittäjä.\")\r\n omistusosuudennimittaja?: number;\r\n @Title(\"Omistusosuuden jakaja\")\r\n @Description(\"Omistusosuuden jakaja.\")\r\n omistusosuudenjakaja?: number;\r\n}\r\n\r\nexport class Osakeryhma extends Base {\r\n @Title(\"Osakeryhmätunnus\")\r\n @Description(\"Osakeryhmän yksilöivä tunnus. Yksilöi koko aineistossa. Muodoltaan tunnus on 16 merkkiä pitkä. Se sisältää 14 aakkosnumeerista merkkiä (kaksi ensimmäistä tunnuksen muodostaja KR =kaupparekisteri tai OH = osakehuoneistorekisteri) ja lopussa kaksinumeroisen tarkistusnumeron, esimerkiksi KRD7AR4QP2NRHP97.\")\r\n osakeryhmatunnus?: string;\r\n @Title(\"Osakeryhmän nimi\")\r\n @Description(\"Osakeryhmän päähallintakohteena olevan huoneiston portaasta, huoneistonumerosta ja jakokirjaimesta tai poikkeavasta huoneistonumerosta esittämistä varten muodostettu merkkijono. Osakeryhmän päähallintakohteena olevan autopaikan ja muun tilan tunnuksesta esittämistä varten muodostettu merkkijono. Max 50 merkkiä. Tieto ei välttämättä ole yksilöivä edes yhtiön sisällä. sakehuoneistorekisterin tieto.\")\r\n osakeryhmanimi?: string;\r\n @Title(\"Osakkeet\")\r\n @Description(\"Osakesarjojen osakkeiden numeroista ja mahdollisista tarkenteista esittämistä varten muodostettu merkkijono.\")\r\n osakkeet?: string;\r\n @Title(\"Osakelukumäärä\")\r\n @Description(\"Osakesarjojen osakkeiden lukumääristä yhteenlaskettu tieto.\")\r\n osakelukumaara?: number;\r\n @Title(\"Hallintakohdetyyppi\")\r\n @Description(\"Osakeryhmän päähallintakohteen hallintakohdetyyppi. Koodisto.\")\r\n hallintakohdetyyppi?: string;\r\n @Title(\"Käyttötarkoitus\")\r\n @Description(\"Osakeryhmän päähallintakohteen käyttötarkoitus. Koodisto.\")\r\n kayttotarkoitus?: string;\r\n @Title(\"Rekisteröintipäivämäärä\")\r\n @Description(\"Päivä, jolloin osakeryhmän syntyminen on rekisteröity kaupparekisteriin.\")\r\n rekisterointipvm?: string;\r\n @Title(\"Päättymispäivämäärä\")\r\n @Description(\"Päivä, jolloin osakeryhmän lakkaaminen on rekisteröity kaupparekisteriin.\")\r\n lakkaamispvm?: string;\r\n @Title(\"Sähköinen omistusmerkintä\")\r\n @Description(\"Tieto kertoo, perustuuko osakeryhmän omistus sähköiseen merkintään osakehuoneistorekisterissä. Osakehuoneistorekisterin tieto.\")\r\n sahkoinenOmistusmerkinta?: boolean;\r\n @Title(\"Sähköisen omistuksen alkamispäivämäärä\")\r\n @Description(\"Päivä, jolloin osakeryhmälle on ensimmäisen kerran kirjattu sähköiseen merkintään perustuva omistus.\")\r\n sahkoisenOmistuksenAlkamispvm?: string;\r\n @Title(\"Muutospäivämäärä Osakehuoneistorekisterissä\")\r\n @Description(\"Viimeisin muutosaikaleima osakehuoneistorekisterissä.\")\r\n muutospvmOsakehuoneistorekisterissa?: string;\r\n @Title(\"Muutospäivämäärä Kaupparekisterissä\")\r\n @Description(\"Viimeisin muutosaikaleima kaupparekisterissä.\")\r\n muutospvmKaupparekisterissa?: string;\r\n @Title(\"Yhtiön viite\")\r\n @Description(\"Asiakasjärjestelmän viite.\")\r\n yhtionViite?: string;\r\n @Title(\"Osoite\")\r\n @Description(\"Osakeryhmän päähallintakohteena olevan huoneiston osoite.\")\r\n osoite?: Osoite;\r\n @Title(\"Olotila\")\r\n @Description(\"Osakeryhmän tila. Koodisto. Tietopalvelua annetaan vain voimassa olevista ja lakkaavista osakeryhmistä.\")\r\n olotila?: string;\r\n @Title(\"Voimaantulopäivämäärä Osakehuoneistorekisterissä\")\r\n @Description(\"Päivä, jolloin osakeryhmä on tullut huoneistotietojärjestelmän tietopalveluun. Uusilla perustetuilla yhtiöillä osakeryhmien voimaantulopvm on sama kuin kaupparekisterin rekisteröintipvm. Yhtiöjärjestyksen muutoksissa syntyvillä osakeryhmillä voimaantulopvm voi olla myöhäisempi kuin kaupparekisterin rekisteröintipvm. Kun yhtiöjärjestyksen muutoksessa osakeryhmä lakkaa ja sen tilalle syntyy uusi osakeryhmä, huoneistotietojärjestelmän tietopalvelussa esitetään vain lakkaavaa osakeryhmää siihen saakka, kunnes kaikki lakkaavaan osakeryhmään kohdistuvat oikeudet on siirretty syntyvälle osakeryhmälle. Sen jälkeen rekisterinpidossa muutetaan lakkaava osakeryhmä lakanneeksi ja syntyvä osakeryhmä voimassa olevaksi. Voimaantulopvm on se päivä, jolloin osakeryhmän tila muuttuu syntyvästä voimassa olevaksi. Yhtiöillä, jotka siirtävät osakeluettelonsa, osakeryhmien voimaantulopvm on osakeluettelon siirtopäivä.\")\r\n voimaantulopvmOsakehuoneistorekisterissa?: string;\r\n @Title(\"Lakkaamispäivämäärä Osakehuoneistorekisterissä\")\r\n @Description(\"Päivä, jolloin osakeryhmä on poistunut huoneistotietojärjestelmän tietopalvelusta. Yhtiöjärjestyksen muutoksissa lakkaavilla osakeryhmillä lakkaamispvmOsakehuoneistorekisterissa voi olla myöhäisempi kuin kaupparekisterin lakkaamispvm. Kun yhtiöjärjestyksen muutoksessa osakeryhmä lakkaa ja sen tilalle syntyy uusi osakeryhmä, huoneistotietojärjestelmän tietopalvelussa esitetään vain lakkaavaa osakeryhmää siihen saakka, kunnes kaikki lakkaavaan osakeryhmään kohdistuvat oikeudet on siirretty syntyvälle osakeryhmälle. Sen jälkeen rekisterinpidossa muutetaan lakkaava osakeryhmä lakanneeksi ja syntyvä osakeryhmä voimassa olevaksi. LakkaamispvmOsakehuoneistorekisterissa on se päivä, jolloin osakeryhmän tila muuttuu lakkaavasta lakanneeksi.\")\r\n lakkaamispvmOsakehuoneistorekisterissa?: string;\r\n @Title(\"Osakesarjat\")\r\n @Description(\"Osakesarjat.\")\r\n osakesarja?: Osakesarja;\r\n @Title(\"Hallintakohde\")\r\n @Description(\"Hallintakohde, johon osakeryhmä antaa hallintaoikeuden.\")\r\n hallintakohde?: Hallintakohde;\r\n @Title(\"Omistaja\")\r\n @Description(\"Osakeryhmän omistaja.\")\r\n omistajat?: Omistaja[];\r\n}\r\n\r\nexport class Osakesarja extends Base {\r\n @Title(\"Alkunumero\")\r\n @Description(\"Numerosarjan ensimmäinen numero.\")\r\n alkunumero?: number;\r\n @Title(\"Loppunumero\")\r\n @Description(\"Numerosarjan viimeinen numero.\")\r\n loppunumero?: number;\r\n @Title(\"Poikkeava osakenumero\")\r\n @Description(\"Muu kuin numeromuotoinen osakenumero. Joissain tapauksissa vanhassa aineistossa numero voi sisältää kirjaimia.\")\r\n poikkeavaOsakenumero?: string;\r\n @Title(\"Osakelukumäärä\")\r\n @Description(\"Osakkeiden lukumäärä.\")\r\n osakelukumaara?: number;\r\n @Title(\"Tarkenne\")\r\n @Description(\"Osakesarjan tarkenne, jota voidaan nimittää myös osakelajiksi.\")\r\n tarkenne?: string;\r\n}\r\n\r\nexport class Osoite extends Base {\r\n @Title(\"Kadunnimi\")\r\n @Description(\"Suomalaisen osoitteen kadun nimi eri kielillä.\")\r\n katunimet?: string;\r\n @Title(\"Osoitenumeron numero-osa\")\r\n @Description(\"Suomalaisen osoitteen katunumero.\")\r\n katunumero?: string;\r\n @Title(\"Postitoimipaikka\")\r\n @Description(\"Suomalaisen osoitteen kunta.\")\r\n osoitteenKunta?: string;\r\n @Title(\"Ulkomainen osoite\")\r\n @Description(\"Ulkomainen osoite yhtenä merkkijonona.\")\r\n ulkomainenOsoite?: string;\r\n}\r\n\r\nexport class Paakayttotarkoitus extends Base {\r\n @Title(\"Käyttötarkoitus\")\r\n @Description(\"Koodisto, joka on joko huoneiston käyttötarkoitus tai muun tilan käyttötarkoitus.\")\r\n kayttotarkoitus?: string;\r\n @Title(\"Selite\")\r\n @Description(\"Käyttötarkoitukseen 999=Muu liittyvä yksikielinen seliteteksti.\")\r\n selite?: string;\r\n}\r\n\r\nexport type PintaAla = object;\r\n\r\nexport type Rajoitukset = object;\r\n\r\nexport class Rakennus extends Base {\r\n @Title(\"Pysyvä rakennustunnus\")\r\n @Description(\"Rakennuksen pysyvä tunnus.\")\r\n pysyvarakennustunnus?: string;\r\n @Title(\"Sijainti\")\r\n @Description(\"Paikka, jossa rakennus sijaitsee.\")\r\n sijainti?: Sijainti;\r\n}\r\n\r\nexport class Sijainti extends Base {\r\n @Title(\"Osoite\")\r\n @Description(\"Sijaintipaikan osoittavien tietojen kokonaisuus.\")\r\n osoite?: Osoite[];\r\n}\r\n\r\nexport class Valtio extends Base {\r\n @Title(\"Maatunnus\")\r\n @Description(\"Maatunnus.\")\r\n maatunnus?: string;\r\n @Title(\"Nimet\")\r\n @Description(\"Valtion nimet ja niiden kielet.\")\r\n nimet?: string;\r\n}\r\n\r\nexport type Yhteystiedot = object;\r\n\r\nexport class Yhtio extends Base {\r\n @Title(\"YTJ:n yritysmuoto\")\r\n @Description(\"Yritys- ja yhteisötietojärjestelmän yritysmuodon koodiarvo.\")\r\n yritysmuotoYTJ: string = \"\";\r\n @Title(\"Olotila\")\r\n @Description(\"Yhtiö voi olla olemassa oleva tai lakannut kaupparekisterissä.\")\r\n olotila: string = \"\";\r\n @Title(\"Rekisteröintipäivämäärä\")\r\n @Description(\"Päivä, jolloin yhtiön perustaminen on rekisteröity kaupparekisteriin.\")\r\n rekisterointipaivamaara: string = \"\";\r\n @Title(\"Lopettamispäivämäärä\")\r\n @Description(\"Päivä, jolloin yhtiön lakkaaminen on rekisteröity kaupparekisteriin.\")\r\n lakkaamispvm?: string;\r\n @Title(\"Osakeluettelo Osakehuoneistorekisterissä\")\r\n @Description(\"Tieto kertoo, onko yhtiön osakeluettelo siirretty sähköisenä osakehuoneistorekisteriin.\")\r\n osakeluetteloOsakehuoneistorekisterissa: boolean = false;\r\n @Title(\"Osakeluettelon siirtymispäivämäärä\")\r\n @Description(\"Päivä, jolloin osakeluettelo on siirtynyt sähköisenä osakehuoneistorekisteriin.\")\r\n osakeluettelonSiirtymispvm: string = \"\";\r\n @Title(\"Muutospäivämäärä Osakehuoneistorekisterissä\")\r\n @Description(\"Viimeisin muutosaikaleima osakehuoneistorekisterissä.\")\r\n muutospvmOsakehuoneistorekisterissa: string = \"\";\r\n @Title(\"Muutospäivämäärä Kaupparekisterissä\")\r\n @Description(\"Viimeisin muutosaikaleima kaupparekisterissä.\")\r\n muutospvmKaupparekisterissa: string = \"\";\r\n @Title(\"Osakekirjat painettu\")\r\n @Description(\"Tieto kertoo, onko ennen 1.1.2019 syntyneessä yhtiössä painettu osakekirjat.\")\r\n osakekirjatPainettu: boolean = false;\r\n @Title(\"Tietolähde\")\r\n @Description(\"Tietolähde voi olla Kaupparekisteri tai Yhtiö. Koodisto.\")\r\n tietolahde: string = \"\";\r\n @Title(\"Kotipaikka\")\r\n @Description(\"Kaupparekisteriin rekisteröity yhtiön kotipaikka.\")\r\n kotipaikka: string = \"\";\r\n @Title(\"Ajantasainen\")\r\n @Description(\"Yhtiön tiedot eivät ole ajantasaiset silloin, jos yhtiön muutostietojen siirto kaupparekisteristä on estynyt jostain teknisestä syystä tai kaupparekisterissä tapahtuneen sulautumisen tai jakautumisen siirto on kesken tämän yhtiön osalta.\")\r\n ajantasainen: boolean = false;\r\n @Title(\"Yhtiön alueet\")\r\n @Description(\"Kiinteistöt, määräalat, vuokraoikeudet (laitokset) ja ulkomaiset alueet, joilla yhtiön rakennukset sijaitsevat.\")\r\n yhtionAlueet?: YhtionAlue[];\r\n @Title(\"Osakeryhmät\")\r\n @Description(\"Yhtiön osakkeet osakeryhmittäin eriteltynä.\")\r\n osakeryhmat?: Osakeryhma[];\r\n @Title(\"Organisaatiotiedot\")\r\n @Description(\"Yhtiön yleiset organisaatiotiedot.\")\r\n organisaatiotiedot?: JuridinenHenkilo;\r\n @Title(\"Nimi\")\r\n @Description(\"Ainutkertaisen tarkoitteen nimitys\")\r\n nimi: string = \"\";\r\n @Title(\"Y-tunnus\")\r\n @Description(\"rekisteriviranomaisen antama yksilöivä tunnus elinkeinotoimintaa harjoittavalle henkilölle tai oikeushenkilölle\")\r\n ytunnus: string = \"\";\r\n}\r\n\r\nexport class YhtionAlue extends Base {\r\n @Title(\"Kiinteistötunnus\")\r\n @Description(\"Rakennuksen sijaintikiinteistön kiinteistötunnus.\")\r\n kiinteistotunnus: string = \"\";\r\n @Title(\"Määräalatunnus\")\r\n @Description(\"Rakennuksen sijaintimääräalan määräalatunnus.\")\r\n maaraalatunnus: string = \"\";\r\n @Title(\"Laitostunnus\")\r\n @Description(\"Rakennuksen sijaintikiinteistölle Kiinteistötietojärjestelmään rekisteröidyn vuokraoikeuden laitostunnus.\")\r\n laitostunnus: string = \"\";\r\n @Title(\"Hallintalaji\")\r\n @Description(\"Tieto kertoo, onko alue yhtiön oma alue vai vuokrattu alue.\")\r\n hallintalaji: string = \"\";\r\n @Title(\"Ulkomaisen alueen tunnus\")\r\n @Description(\"Ulkomailla sijaitsevan rakennuksen sijaintialueen tunnus.\")\r\n ulkomaisenAlueenTunnus: string = \"\";\r\n @Title(\"Ulkomaisen alueen nimi\")\r\n @Description(\"Ulkomailla sijaitsevan rakennuksen sijaintialueen nimi.\")\r\n ulkomaisenAlueenNimi: string = \"\";\r\n @Title(\"Ulkomaisen alueen rekisteri\")\r\n @Description(\"Ulkomailla sijaitsevan rakennuksen sijaintialueen tunnuksen antaneen rekisterin nimi.\")\r\n ulkomaisenAlueenRekisteri: string = \"\";\r\n @Title(\"Tietolähde\")\r\n @Description(\"Tietolähde voi olla Kaupparekisteri tai Yhtiö. Koodisto.\")\r\n tietolahde: string = \"\";\r\n @Title(\"Sijaintikunta\")\r\n @Description(\"Suomessa olevan kiinteistön, määräalan tai vuokra-alueen sijaintikunta.\")\r\n sijaintikunta2?: Kunta;\r\n @Title(\"Ulkomaisen alueen maa\")\r\n @Description(\"Ulkomailla sijaitsevan rakennuksen sijaintialueen maa.\")\r\n ulkomaisenalueenmaa?: Maa;\r\n}","import { EnergyBasics } from \"../model/energyBasics\";\r\nimport { EnergyInitialData } from \"../model/energyInitialData\";\r\nimport { OwnerAddress } from \"../model/ownerAddress\";\r\nimport { Building } from '../model';\r\nimport Apis from '../utils/apis'\r\nimport { BuildingPermit } from \"../model/buildingPermit\";\r\nimport { ParsingUtils } from \"./parsingUtils\";\r\nimport { BuildingSpecification } from \"../model/buildingSpecification\";\r\nimport { UnitSpecification } from \"../model/unitSpecification\";\r\nimport { Property } from \"../model/property\";\r\nimport { ConstructionSupervisionCase } from \"../model/buildingPermit/constructionSupervisionCase\";\r\nimport { Share } from \"../model/share\";\r\nimport { BuildingPlan } from \"../model/buildingPlan/buildingPlan\";\r\nimport * as Huontest from \"../model/Huoneistotiedot\";\r\nimport TaxBuilding from \"../model/tax/taxBuilding\";\r\nimport { Rakenne } from \"../model/servicePlan/rakenne\";\r\nimport { Kaava } from \"../model/kaava/kaava\";\r\nimport { CodeList } from \"../model/koodisto/Koodistot\";\r\nimport { KaavaStyles } from \"../model/kaava/KaavaStyles\";\r\n\r\n//const apiRootUrl = process.env.API_ROOT_URL || '/example-data'\r\n\r\n// RHR API in Azure\r\nexport const RhrApi = {\r\n getBuildings: \r\n async () => await fetch(`${Apis.RHR}/buildings`)\r\n .then(resp => resp.json())\r\n .catch(err => { console.log(\"No building found!\"); return [] } ),\r\n getOwnerInstance: \r\n async (id: string) => await fetch(`${Apis.RHR}/instance/${id}`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No instance found by ID ${id}: ${err}`)),\r\n\r\n // haetaan pysyvällä rakennustunnuksella (PermanentBuildingID)\r\n getSharesByBuildingId: \r\n async (id: string) => await fetch(`${Apis.RHR}/buildings/${id}/shares`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No shares found by ID ${id}: ${err}`)),\r\n\r\n getCompanyByBuildingId: \r\n async (id: string) => await fetch(`${Apis.RHR}/buildings/${id}/company`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No company found by ID ${id}: ${err}`)),\r\n getPersonByBuildingId: \r\n async (id: string) => await fetch(`${Apis.RHR}/buildings/${id}/person`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No person found by ID ${id}: ${err}`)), \r\n \r\n // getBuildingEquipment: \r\n // async (id: string) => await fetch(`${Apis.RHR}/buildings/${id}/equipment`)\r\n // .then(resp => resp.json())\r\n // .catch(err => console.log(`No person found by ID ${id}: ${err}`)), \r\n \r\n getUnitEquipments:\r\n async (buildingId: string) => \r\n await fetch(`${Apis.RHR}/buildings/${buildingId}/unitequipment`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No equipments found by buildingId ${buildingId}`)), \r\n getBuildingSpecifications: \r\n async (id: string) => await fetch(`${Apis.RHR}/buildings/${id}/buildingSpecifications`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No building specification found by ID ${id}: ${err}`)), \r\n getUnitSpecifications: \r\n async (id: string) => await fetch(`${Apis.RHR}/buildings/${id}/unitSpecifications`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No unit specification found by ID ${id}: ${err}`)), \r\n getBuildingPermit: \r\n async (id: string) => await fetch(`${Apis.RHR}/buildings/${id}/buildingPermit`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No building permit found by ID ${id}: ${err}`)), \r\n getBuildingById: async (id: string) => {\r\n if (id !== undefined && id !== '') { \r\n let building = await fetch(`${Apis.RHR}/buildings/${id}`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No building found by ID ${id}: ${err}`));\r\n\r\n \r\n const ownerCall = RhrApi.getOwnerInstance(building.OwnerID);\r\n\r\n const getSharesByBuildingIdCall = RhrApi.getSharesByBuildingId(building.PermanentBuildingID);\r\n\r\n // const getBuildingEquipmentCall = RhrApi.getBuildingEquipment(building.PermanentBuildingID);\r\n\r\n const getUnitEquipmentCall = RhrApi.getUnitEquipments(building.PermanentBuildingID);\r\n\r\n const getUnitSpecificationsCall = RhrApi.getUnitSpecifications(building.PermanentBuildingID);\r\n \r\n const getBuildingSpecificationsCall = RhrApi.getBuildingSpecifications(building.PermanentBuildingID);\r\n \r\n const getBuildingPermitCall = RhrApi.getBuildingPermit(building.PermanentBuildingID);\r\n \r\n const getByBuildingIdCall = MMLApi.getByBuildingId(building.PermanentBuildingID);\r\n \r\n //const getByPermanentBuildingIdCall = RealEstateApi.getByPermanentBuildingId(building.PermanentBuildingID);\r\n \r\n const owner = await ownerCall;\r\n\r\n if (owner && owner.ID)\r\n building = {\r\n ...building,\r\n Owner: {\r\n Type: owner.LastName ? false : true, // 0: person, 1: company\r\n //Id: owner.ID as string,\r\n Name: owner.LastName ? `${owner.FirstNames} ${owner.LastName}` \r\n : `${owner.CompanyName} ${owner.CompanyForm}`,\r\n }\r\n }\r\n\r\n // await getBuildingEquipmentCall.then(equipments => {\r\n // if (equipments !== undefined && equipments.length > 0)\r\n // building = { ...building, Equipments: equipments }\r\n // }).catch(err => console.log(`No building equipments found by PermanentBuildingID ${building.BuildingID}: ${err}`));\r\n\r\n // Get shares\r\n await getSharesByBuildingIdCall.then(shares => {\r\n if (shares !== undefined && shares.length > 0)\r\n building = { ...building, Shares: ParsingUtils.CastObjectArray(shares, () => new Share())}\r\n }).catch(err => console.log(`No shares found by PermanentBuildingID ${building.BuildingID}: ${err}`));\r\n\r\n await getUnitEquipmentCall.then(equipments => {\r\n if (equipments !== undefined && equipments.length > 0)\r\n building = { ...building, UnitEquipments: equipments }\r\n }).catch(err => console.log(`No unit equipments found by PermanentBuildingID ${building.BuildingID}: ${err}`)); \r\n \r\n await getUnitSpecificationsCall.then(specifications => {\r\n if (specifications !== undefined && specifications.length > 0)\r\n building = { ...building, UnitSpecifications: ParsingUtils.CastObjectArray(specifications, () => new UnitSpecification())}\r\n }).catch(err => console.log(`No unit specifications found by PermanentBuildingID ${building.BuildingID}: ${err}`)); \r\n\r\n await getBuildingSpecificationsCall.then(buildingSpecs => {\r\n if (buildingSpecs !== undefined)\r\n building = { ...building, BuildingSpecifications: ParsingUtils.CastObject(buildingSpecs, () => new BuildingSpecification(), true) }\r\n }).catch(err => console.log(`No unit specifications found by PermanentBuildingID ${building.BuildingID}: ${err}`)); \r\n\r\n await getBuildingPermitCall.then(buildingPermit => {\r\n if (buildingPermit !== undefined && buildingPermit.length > 0)\r\n building = { ...building, BuildingPermit: ParsingUtils.CastObjectArray(buildingPermit, () => new BuildingPermit())}\r\n }).catch(err => console.log(`No building permit found by PermanentBuildingID ${building.BuildingID}: ${err}`)); \r\n\r\n // Get address and location from MML\r\n await getByBuildingIdCall.then(loc => {\r\n if (loc.features && loc.features.length > 0)\r\n building = {\r\n ...building,\r\n Location: {\r\n Geometry: loc.features[0]?.geometry ?? false,\r\n Address: loc.features[0]?.properties ?? false\r\n }\r\n }\r\n }).catch(err => console.log(`No location found by PermanentBuildingID ${building.PermanentBuildingID}: ${err}`));\r\n\r\n /*await getByPermanentBuildingIdCall.then(resp => {\r\n console.log(\"8\");\r\n if (resp !== undefined && resp.length > 0)\r\n building = { ...building, RealEstateInfo: resp }\r\n }).catch(err => console.log(`No unit equipments found by PermanentBuildingID ${building.BuildingID}: ${err}`)); */\r\n\r\n building = ParsingUtils.CastObject(building, () => new Building(), true);\r\n\r\n return building;\r\n } \r\n },\r\n}\r\n\r\n // MML location API\r\n export const MMLApi = {\r\n getByBuildingId: async (id: string) =>\r\n await fetch(Apis.MML + id).then(resp => resp.json()).catch(err => {\r\n console.log(\"ERROR: \" + err);\r\n })\r\n }\r\n\r\n\r\n\r\n export class EnergyApi{\r\n public GetEnergyData(permanentBuildingId: string): Promise {\r\n return fetch(`${Apis.ENERGY}/${permanentBuildingId}/EnergyBasics`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No EnergyBasics found by PermanentBuildingID ${permanentBuildingId}: ${err}`))\r\n }\r\n\r\n public GetEnergyInitialData(permanentBuildingId: string): Promise {\r\n return fetch(`${Apis.ENERGY}/${permanentBuildingId}/EnergyInitialData`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No EnergyInitialData found by PermanentBuildingID ${permanentBuildingId}: ${err}`))\r\n }\r\n public GetUnitEquipments(permanentBuildingId: string, unitCode: string): Promise {\r\n return fetch(`${Apis.RHR}/buildings/${permanentBuildingId}/unit/${unitCode}/equipments`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No equipments found by PermanentBuildingID ${permanentBuildingId} and UnitCode ${unitCode}: ${err}`))\r\n }\r\n}\r\n\r\nexport class BuildingPermitAPI{\r\n public GetBuildingPermit(permanentBuildingId: string): Promise {\r\n return fetch(`${Apis.BUILDINGPERMIT_API}/${permanentBuildingId}`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No BuildingPermit found by PermanentBuildingID ${permanentBuildingId}: ${err}`))\r\n }\r\n}\r\n\r\nexport class PropertyApi{\r\n public GetPropertyData(permanentBuildingId: string): Promise {\r\n return fetch(`${Apis.PROPERTY_API}/${permanentBuildingId}`).then(resp => resp.json())\r\n .catch(err => console.log(`Error when fetching propertyData by building ID ${permanentBuildingId}: ${err}`))\r\n }\r\n}\r\n\r\nexport class TaxAdministrationApi{\r\n public GetBuildingData(permanentBuildingId: string): Promise {\r\n return fetch(`${Apis.TAX_ADMINISTRATION}/${permanentBuildingId}`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No tax administration building info found by ID ${permanentBuildingId}: ${err}`))\r\n }\r\n\r\n public GetAddress(permanentBuildingId: string): Promise {\r\n return fetch(`${Apis.TAX_ADMINISTRATION}/${permanentBuildingId}/OwnerAddress`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No building info found by ID ${permanentBuildingId}: ${err}`))\r\n }\r\n\r\n public GetServicePlan(permanentBuildingId: string): Promise {\r\n return fetch(`${Apis.SERVICE_PLAN}eHuoltokirja/${permanentBuildingId}`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No service plan found by ID ${permanentBuildingId}: ${err}`))\r\n }\r\n\r\n public SaveServicePlan(permanentBuildingId: string, jsonData: string): Promise {\r\n return fetch(`${Apis.SERVICE_PLAN}eHuoltokirja/${permanentBuildingId}/${jsonData}`,\r\n {\r\n method: 'POST'\r\n })\r\n .then(resp => resp.statusText as any)\r\n .catch(err => console.log(`Error when saving a plan for ${permanentBuildingId}: ${err}`))\r\n }\r\n }\r\n\r\nexport class BuildingPlanAPI {\r\n public GetBuildingPlan(permanentBuildingId: string): Promise {\r\n return fetch(`${Apis.BUILDING_PLAN_API}/KaavatietomalliWanha/${permanentBuildingId}`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No building info found by ID ${permanentBuildingId}: ${err}`))\r\n }\r\n}\r\n\r\nexport class KaavaAPI {\r\n public GetBuildingPlan(url?: string): Promise {\r\n let _url = url ?? \"/data/kaavatiedot/valkeakoski.json\";\r\n return fetch(_url)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`What?!`));\r\n }\r\n public GetKaavaStyles(): Promise {\r\n return fetch(`/data/kaavatiedot/kaavamaaraystyylit.json`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`What?!`));\r\n }\r\n}\r\n\r\nexport class KoodistoAPI {\r\n public GetCodeList(url: string): Promise {\r\n return fetch(url)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`What?!`));\r\n }\r\n}\r\n\r\n\r\nconst RealEstateApi = {\r\n getByPermanentBuildingId: (permanentBuildingId: string) => \r\n fetch(`${Apis.REALESTATE}/Kiinteisto/${permanentBuildingId}`)\r\n .then(resp => resp.json())\r\n .catch(err => console.log(`No real estate info found by ID ${permanentBuildingId}: ${err}`)) \r\n}\r\n\r\nexport class HuoneistotiedotAPI {\r\n public GetHuoneistotiedot(permanentBuildingId: string): Promise {\r\n return fetch(`${Apis.HUONEISTOTIEDOT_API}/Huoneistotiedot/${permanentBuildingId}`)\r\n .then(resp => resp.json())\r\n .then(resp => {\r\n const yhtio = ParsingUtils.CastObject(resp, () => new Huontest.Yhtio());\r\n if (resp.organisaatiotiedot) {\r\n yhtio.organisaatiotiedot = ParsingUtils.CastObject(resp.organisaatiotiedot, () => new Huontest.JuridinenHenkilo());\r\n }\r\n if (resp.osakeryhmat) {\r\n yhtio.osakeryhmat = ParsingUtils.CastObjectArray(resp.osakeryhmat, () => new Huontest.Osakeryhma());\r\n yhtio.osakeryhmat.forEach(osakeryhma => {\r\n if (osakeryhma.osoite) osakeryhma.osoite = ParsingUtils.CastObject(osakeryhma.osoite, () => new Huontest.Osoite());\r\n if (osakeryhma.osakesarja) osakeryhma.osakesarja = ParsingUtils.CastObject(osakeryhma.osakesarja, () => new Huontest.Osakesarja());\r\n if (osakeryhma.hallintakohde) {\r\n osakeryhma.hallintakohde = ParsingUtils.CastObject(osakeryhma.hallintakohde, () => new Huontest.Hallintakohde());\r\n if (osakeryhma.hallintakohde.paakayttotarkoitus) osakeryhma.hallintakohde.paakayttotarkoitus = ParsingUtils.CastObject(osakeryhma.hallintakohde.paakayttotarkoitus, () => new Huontest.Paakayttotarkoitus());\r\n if (osakeryhma.hallintakohde.muukayttotarkoitus) osakeryhma.hallintakohde.muukayttotarkoitus = ParsingUtils.CastObject(osakeryhma.hallintakohde.muukayttotarkoitus, () => new Huontest.MuuKayttotarkoitus());\r\n }\r\n if (osakeryhma.omistajat) {\r\n osakeryhma.omistajat = ParsingUtils.CastObjectArray(osakeryhma.omistajat, () => new Huontest.Omistaja());\r\n osakeryhma.omistajat.forEach(omistaja => {\r\n if (omistaja.henkiloomistaja) omistaja.henkiloomistaja = ParsingUtils.CastObject(omistaja.henkiloomistaja, () => new Huontest.LuonnollinenHenkilo());\r\n if (omistaja.organisatioomistaja) omistaja.organisatioomistaja = ParsingUtils.CastObject(omistaja.organisatioomistaja, () => new Huontest.JuridinenHenkilo());\r\n });\r\n }\r\n });\r\n }\r\n if (yhtio.yhtionAlueet) {\r\n yhtio.yhtionAlueet = ParsingUtils.CastObjectArray(resp.yhtionAlueet, () => new Huontest.YhtionAlue());\r\n yhtio.yhtionAlueet.forEach(alue => {\r\n if (alue.sijaintikunta2) {\r\n alue.sijaintikunta2 = ParsingUtils.CastObject(alue.sijaintikunta2, () => new Huontest.Kunta());\r\n }\r\n if (alue.ulkomaisenalueenmaa) {\r\n alue.ulkomaisenalueenmaa = ParsingUtils.CastObject(alue.ulkomaisenalueenmaa, () => new Huontest.Maa());\r\n }\r\n });\r\n } \r\n return yhtio;\r\n })\r\n .catch(err => {\r\n console.log(`No Huoneistotiedot found by ID ${permanentBuildingId}: ${err}`);\r\n return undefined;\r\n });\r\n \r\n }\r\n}\r\n","import React from 'react';\r\nimport { Box, FormControl, FormControlLabel, FormLabel, Paper, Radio, RadioGroup, Tooltip, Typography } from '@material-ui/core';\r\nimport { RhrApi } from '../utils/api';\r\nimport { Data } from 'react-data-grid-addons';\r\n\r\ninterface IBuildingListItem {\r\n id: string;\r\n permanentId: string;\r\n year: string;\r\n usage: string;\r\n}\r\n\r\nexport interface BuildingPickerProps {\r\n selectedValue: string;\r\n onChange: (value?: string) => void;\r\n}\r\n\r\n// TODO tee funktio?\r\n\r\nclass BuildingPicker extends React.Component {\r\n constructor(props: BuildingPickerProps, data : any) {\r\n super(props);\r\n this.state = {...props};\r\n }\r\n\r\n public buildings: IBuildingListItem[] = [];\r\n\r\n handleChange = (event: React.ChangeEvent) => {\r\n //history.push(`../rakennus/${escapeHtml(properties.buildingId)}`);\r\n this.props.onChange(event.target.value);\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.setState({rows: []});\r\n this.buildings = [];\r\n \r\n RhrApi.getBuildings().then((result) => {\r\n this.buildings = result.map((x: any) => { return { id: x.BuildingID, permanentId: x.PermanentBuildingID, year: x.CompletionYear, usage: x.BuildingUsage } as IBuildingListItem; });\r\n this.setState({rows: this.buildings});\r\n })\r\n }\r\n\r\n render() {\r\n\r\n const getBuildingUsage = (permanentId: string) => {\r\n switch(permanentId) {\r\n case \"100173167F\": return \"Omakotitalo\";\r\n case \"1018388849\": return \"Paritalo\";\r\n case \"101848155B\": return \"Kerrostalo\";\r\n case \"102500030K\": return \"Kerrostalo\";\r\n case \"102906977W\": return \"Rivitalo\";\r\n case \"106003070V\": return \"Omakotitalo\";\r\n }\r\n }\r\n\r\n const getBuildingLocation = (permanentId: string) => {\r\n switch(permanentId) {\r\n case \"100173167F\": return \"Valkeakoski\";\r\n case \"1018388849\": return \"Valkeakoski\";\r\n case \"101848155B\": return \"Valkeakoski\";\r\n case \"102500030K\": return \"Espoo\";\r\n case \"102906977W\": return \"Espoo\";\r\n case \"106003070V\": return \"Espoo\";\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Valitse käytettävä rakennus\r\n \r\n {this.buildings.map((building: IBuildingListItem, i) => {\r\n return \r\n {building.permanentId}\r\n Rakennusvuosi: {building.year}\r\n Talotyyppi: {getBuildingUsage(building.permanentId)} \r\n }>\r\n } label={`${building.permanentId} ${ getBuildingLocation(building.permanentId) }` } />\r\n \r\n \r\n })}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default BuildingPicker;\r\n\r\n","/** @jsx jsx */\r\nimport {css, jsx} from '@emotion/core'\r\nimport React, {CSSProperties} from \"react\";\r\nimport {suomifiDesignTokens as tokens} from \"suomifi-design-tokens\";\r\nimport { Icon } from 'suomifi-ui-components';\r\n\r\nconst Spinner: React.FC = ({style}) => {\r\n return
\r\n \r\n
;\r\n};\r\n\r\ninterface Props {\r\n style?: CSSProperties\r\n}\r\n\r\nexport default Spinner;\r\n","import { Title } from '../utils/tooltipUtil';\r\nimport { Description } from \"../utils/tooltipUtil\";\r\n\r\nexport class EnergyBasics {\r\n @Title(\"Pysyvä rakennustunnus\")\r\n @Description(\"Rakennuksen pysyvä tunnus.\")\r\n PermanentBuildingID: string = \"\";\r\n @Title(\"Kiinteistötunnus\")\r\n @Description(\"kiinteistörekisteriin merkityn rekisteriyksikön yksilöivä tunnus\")\r\n BuildingID: string = \"\";\r\n @Title(\"Valmistumisvuosi\")\r\n @Description(\"Rakennuksen lopputarkastuksen ja käyttöönoton ajankohta vuoden tarkkuudella.\")\r\n CompletionYear: number = 0;\r\n @Title(\"Tila\")\r\n @Description(\"(Luonnos), Voimassa, Korvattu, Hylätty\")\r\n Stage: number = 0;\r\n @Title(\"Nimi\")\r\n @Description(\"kiinteistön nimi\")\r\n Name: string = \"\";\r\n @Title(\"Käyttötarkoitus\")\r\n @Description(\"Ympäristöministeriön asetus rakennuksen energiatodistuksesta mukainen käyttötarkoitus; oma koodisto.\")\r\n IntendedUse: string = \"\";\r\n @Title(\"Sijaintikunta\")\r\n @Description(\"kunta, jossa kohde sijaitsee\")\r\n LocationMunicipality: number = 0;\r\n @Title(\"Rakennuksen laskennallinen kokonaisenergiakulutus\")\r\n @Description(\"Energiatodistuksen kohteena olevan rakennuksen laskennallinen kokonaisenergiakulutus, ilmaistaan kokonaislukuarvona kWhE / (m2vuosi)\")\r\n E_Value: number = 0;\r\n @Title(\"Energiatehokkuusluokka\")\r\n @Description(\"rakennuksen tai sen osan laskennallisen kokonaisenergiankulutuksen perusteella määräytyvä luokka; koodisto A-G\")\r\n E_Class: string = \"\";\r\n}","import { Title } from '../utils/tooltipUtil';\r\nimport { Description } from \"../utils/tooltipUtil\";\r\nexport class EnergyInitialData {\r\n @Title(\"Pysyvä rakennustunnus\")\r\n @Description(\"Rakennuksen pysyvä tunnus.\")\r\n PermanentBuildingID: string = \"\";\r\n @Title(\"Kiinteistötunnus\")\r\n @Description(\"kiinteistörekisteriin merkityn rekisteriyksikön yksilöivä tunnus\")\r\n BuildingID: string = \"\";\r\n @Title(\"Lämmitetty nettoala\")\r\n @Description(\"Lämmitetty nettoala\")\r\n HeatedNetArea: number = 0;\r\n @Title(\"Ilmanvuotoluku\")\r\n @Description(\"Rakennuksen vaipan keskimääräinen vuotoilmavirta tunnissa 50 Pa:n paine-erolla rakennuksen kokonaissisämittojen mukaan laskettua rakennuksen vaipan pinta-alaa kohden.\")\r\n AirLeakageRate: number = 0;\r\n @Title(\"Lämpökapasiteetti\")\r\n @Description(\"Rakennusvaipan kyky sitoa ja varastoida itseensä lämpöä (syn: \\\"lämmönvaraamiskyky\\\")\")\r\n HeatCapacity: number = 0;\r\n @Title(\"Ilmatilavuus\")\r\n @Description(\"Ilmatilavuus\")\r\n AirVolume: number = 0;\r\n @Title(\"Ulkoneinät, Pinta-ala\")\r\n @Description(\"Ulkoneinät, Pinta-ala\")\r\n ExteriorWalls_Lower: number = 0;\r\n @Title(\"Ulkoseinät, Lämmönläpäisykerroin\")\r\n @Description(\"Määritelmä asetus 1010/2017\")\r\n ExteriorWalls_U: number = 0;\r\n /*@Title(\"\")\r\n @Description(\"\")\r\n ExteriorWalls_Ua: number = 0;*/\r\n @Title(\"Ikkunat -> Pinta-ala\")\r\n @Description(\"Ikkunat -> Pinta-ala\")\r\n Windows_Lower: number = 0;\r\n @Title(\"Ikkunat > Lämpöläpäisykerroin\")\r\n @Description(\"Ikkunat > Lämpöläpäisykerroin\")\r\n Windows_U: number = 0;\r\n @Title(\"Ilmanvaihtotapa\")\r\n @Description(\"Ilmanvaihtotapa\")\r\n VentilationType: number = 0;\r\n @Title(\"Ilmanvaihto > Tulo\")\r\n @Description(\"Ilmanvaihtotapa, tulo\")\r\n VentilationIN: number = 0;\r\n @Title(\"Ilmanvaihto > Poisto\")\r\n @Description(\"Ilmanvaihtotapa, poisto\")\r\n VentilationOUT: number = 0;\r\n @Title(\"Lämmitystapa\")\r\n @Description(\"Rakennuksen lämmitystapa; koodisto: mm. Kaukolämpö; Sähkö; Maalämpöpumppu; Öljy; Kaasu. Sallittava ilmeisesti useampi arvo?\")\r\n HeatingMethod: number = 0;\r\n @Title(\"Sisäiset kuormat > Henkilöt > Käyttöaste\")\r\n @Description(\"Sisäiset kuormat > Henkilöt > Käyttöaste\")\r\n InternalLoad_People_OccupancyRate: number = 0;\r\n @Title(\"Sisäiset kuormat > Henkilöt > Lämpökuorma\")\r\n @Description(\"Rakennuksen vakioidusta käytöstä aiheutuva lämpökuorma. Esim. ihmisen läsnäolo rakennuksessa vähentää rakennuksen lämmitystarvetta.\")\r\n InternalLoad_People_HeatLoad: number = 0;\r\n @Title(\"Sisäiset kuormat > Kuluttajalaitteet > Käyttöaste\")\r\n @Description(\"Sisäiset kuormat > Kuluttajalaitteet > Käyttöaste\")\r\n InternalLoad_Equipment_OccupancyRate: number = 0;\r\n @Title(\"Sisäiset kuormat > Kuluttajalaitteet > Lämpökuorma\")\r\n @Description(\"Rakennuksen vakioidusta käytöstä aiheutuva lämpökuorma. Esim. ihmisen läsnäolo rakennuksessa vähentää rakennuksen lämmitystarvetta.\")\r\n InternalLoad_Equipment_HeatLoad: number = 0;\r\n @Title(\"Sisäiset kuormat > Kuluttajalaitteet > Käyttöaste\")\r\n @Description(\"Sisäiset kuormat > Kuluttajalaitteet > Käyttöaste\")\r\n InternalLoad_Lights_OccupancyRate: number = 0;\r\n @Title(\"Sisäiset kuormat > Valaistus > Lämpökuorma\")\r\n @Description(\"Rakennuksen vakioidusta käytöstä aiheutuva lämpökuorma. Esim. ihmisen läsnäolo rakennuksessa vähentää rakennuksen lämmitystarvetta.\")\r\n InternalLoad_Lights_HeatLoad: number = 0;\r\n}\r\n","/** @jsx jsx */\r\nimport {jsx} from '@emotion/core'\r\nimport { Button } from '@material-ui/core';\r\nimport React from \"react\";\r\nimport Modal from 'react-modal';\r\nimport icon from '../../icons/building.png';\r\n\r\ninterface Props {\r\n data: string\r\n}\r\n\r\nclass ThreeDView extends React.Component {\r\n constructor(props: Props) {\r\n super(props);\r\n this.state = {\r\n visible: false,\r\n address: props.data\r\n };\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps: Props) {\r\n return {\r\n data: nextProps.data\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n }\r\n \r\n });\r\n\r\n channel.handleEvent(\"SearchResultEvent\", (data: unknown) => {\r\n\r\n });\r\n\r\n // Save MapClickedEvent and FeatureEvent into state and useEffect will open the infoBox\r\n channel.handleEvent(\"MapClickedEvent\", (data: OskariMapClickedEvent) => {\r\n // Reset features before next feature event...\r\n \r\n \r\n // ongelmana nyt se, että\r\n // clicked tapahtuu heti feature eventin jälkeen\r\n // kun tehdään clicked muualle, feature ei tapahdu... niin ennen feature eventtiä ei voi tehdä clicked juttua...\r\n //\r\n //setFeatureEvent(null);\r\n \r\n if (clickEvent === null) {\r\n setClickEvent(data);\r\n setFeatureEvent(null);\r\n setBuildingFeatureEvent(null);\r\n channel.postRequest('MapModulePlugin.GetFeatureInfoRequest', [data.lon, data.lat]);\r\n }\r\n else {\r\n \r\n }\r\n });\r\n\r\n channel.handleEvent('FeatureEvent', function(data : OskariFeatureEvent) {\r\n // Use timeout to prevent clearing feature event after click event\r\n // Feature event seems to happen just before click event, and on click event we want to reset old features\r\n // If user clicks area where is no features, only click event happens...\r\n setTimeout(() => {\r\n if (data.operation === \"click\" && featureEvent === null) {\r\n setFeatureEvent(data);\r\n }\r\n }, 1);\r\n \r\n });\r\n }\r\n\r\n const showInfoBox = (clickEvent: OskariMapClickedEvent, data: OskariFeatureEvent) => {\r\n channel.postRequest('InfoBox.HideInfoBoxRequest', [\"myInfoBox\"]);\r\n\r\n // TODO poista rakennukset? uudessa kartassa toteutettu toisin\r\n if (data.features[0].layerId === 'features-layer-buildings') {\r\n const properties = data.features[0].geojson.features[0].properties as any;\r\n history.push(`../rakennus/${escapeHtml(properties.VTJprt)}`); \r\n }\r\n else \r\n {\r\n // const topRightCoordinates = getTopRightCoordinates(data.features[0].geojson.features[0].geometry.coordinates[0]);\r\n const content = data.features.flatMap(fw => {\r\n return fw.geojson.features.map((f: OskariFeature|any) => {\r\n return {\r\n 'html': \r\n '
\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {KerrostalonTiedotTable()}\r\n >\r\n )\r\n}\r\n\r\nexport default KerrostalonTiedotView;","import React from \"react\";\r\nimport { Box, Grid } from '@material-ui/core';\r\nimport { buildingAppData } from '../../App';\r\nimport Card from '../common/Card';\r\nimport AsunnonOmistusView from \"./AsunnonOmistusView\";\r\nimport OmakotitalonOmistusView, { mapToOKTViewParts } from \"./OmakotitalonOmistusView\";\r\nimport KerrostalonTiedotView, { mapToKTViewParts } from \"./KerrostalonTiedotView\";\r\n\r\ninterface Props {\r\n data: buildingAppData;\r\n}\r\n\r\nconst AiheetView: React.FC = (props: Props) => {\r\n\r\n const ktViewParts = mapToKTViewParts(props.data);\r\n const oktViewParts = mapToOKTViewParts(props.data);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n { oktViewParts && \r\n \r\n \r\n \r\n }\r\n { ktViewParts && \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default AiheetView;","import { Title, Description } from '../../utils/tooltipUtil';\r\nimport { Base } from '../base';\r\n\r\nexport class PlanRecommendation extends Base {\r\n @Title(\"Elinkaaritila\")\r\n @Description(\"elinkaaren tila, jossa kaavan versio on.\")\r\n LifeCycleState: string = \"\";\r\n \r\n @Title(\"Teema\")\r\n @Description(\"Kaavoituksen piiriin kuuluva temaattinen aihealue\")\r\n PlanTheme: string = \"\";\r\n}","import { Title, Description } from '../../utils/tooltipUtil';\r\nimport { Base } from '../base';\r\n\r\nexport class PlanRegulation extends Base {\r\n @Title(\"Laji\")\r\n @Description(\"kuvaa määräyksen tyypin\")\r\n RegulationType: string = \"\";\r\n\r\n @Title(\"Elinkaaritila\")\r\n @Description(\"elinkaaren tila, jossa kaavamääräyksen versio on.\")\r\n LifeCycleState: string = \"\";\r\n \r\n @Title(\"Lisätieto\")\r\n @Description(\"määräystä tarkentava tai rajaava tieto\")\r\n AdditionalInfo: string = \"\";\r\n}","import { Title, Description } from '../../utils/tooltipUtil';\r\nimport { Base } from '../base';\r\nimport { PlanRecommendation } from \"./planRecommendation\";\r\nimport { PlanRegulation } from \"./planRegulation\";\r\n\r\nexport class BuildingPlanTarget extends Base {\r\n \r\n @Title(\"Voimassaoloaika, alku\")\r\n @Description(\"aikaväli, jona kaavakohde ja sen kaavamääräykset ovat lainvoimaisia, ellei yksittäisten kaavamääräysten voimassaoloa ole erikseen rajattu.\")\r\n ValidyStart: Date | undefined;\r\n\r\n @Title(\"Voimassaoloaika, loppu\")\r\n @Description(\"aikaväli, jona kaavakohde ja sen kaavamääräykset ovat lainvoimaisia, ellei yksittäisten kaavamääräysten voimassaoloa ole erikseen rajattu.\")\r\n ValidyEnd: Date | undefined;\r\n\r\n @Title(\"Kaavamääräys\")\r\n @Description(\"kohteeseen liitetty määräys\")\r\n PlanRegulation: PlanRegulation = new PlanRegulation();\r\n\r\n @Title(\"Kaavasuositus\")\r\n @Description(\"kaavamääräyskohteen alueeseen kohdistuva, ei-velvoittava suositus, joka ilmentää esimerkiksi toteutuksen tapaa ja tavoitetta.\")\r\n PlanRecommandation: PlanRecommendation = new PlanRecommendation();\r\n\r\n\r\n public Clone(data: any) {\r\n super.Clone(data);\r\n\r\n if (data.PlanRegulation !== undefined) {\r\n var reg = new PlanRegulation();\r\n reg.Clone(data.PlanRegulation);\r\n this.PlanRegulation = reg;\r\n }\r\n\r\n if (data.PlanRecommandation !== undefined) {\r\n var rec = new PlanRecommendation();\r\n rec.Clone(data.PlanRecommandation);\r\n this.PlanRecommandation = rec;\r\n }\r\n }\r\n}","import { Title, Description } from '../../utils/tooltipUtil';\r\nimport { Base } from '../base';\r\nimport { BuildingPlanTarget } from './buildingPlanTarget';\r\n\r\nexport class BuildingPlan extends Base {\r\n @Title(\"Kaavakohde\")\r\n @Description(\"Kaavan sisältyvä paikkatietokohde, johon voi kohdistua kaavamääräyksiä tai kaavasuosituksia\")\r\n Target: BuildingPlanTarget = new BuildingPlanTarget();\r\n @Title(\"Vireilletuloaika\")\r\n @Description(\"Ajanhetki, jolloin kaava on tullut vireille\")\r\n InitiationDate: string = \"\";\r\n @Title(\"Hyväksymisaika\")\r\n @Description(\"Ajanhetki, jolloin vastuullinen organisaatio on hyväksynyt kaavan\")\r\n ApprovalDate: string = \"\";\r\n\r\n public Clone(data: any) {\r\n super.Clone(data);\r\n\r\n if (data !== undefined && data.Target !== undefined) {\r\n var b = new BuildingPlanTarget();\r\n b.Clone(data.Target);\r\n this.Target = b;\r\n }\r\n }\r\n}","import { Title } from '../../utils/tooltipUtil';\r\nimport { Description } from \"../../utils/tooltipUtil\";\r\nimport { Base } from '../base';\r\n\r\nexport default class TaxBuildingAddress extends Base{\r\n @Title(\"Osoite\")\r\n @Description(\"Osoitetieto suomalaisen osoitejärjestelmän mukaisesti\")\r\n Address: string = \"\";\r\n @Title(\"Postinumero\")\r\n @Description(\"osoitteen numero-osa, joka viittaa postitoimipaikkaan\")\r\n PostalCode: string = \"\";\r\n @Title(\"Postitoimipaikka\")\r\n @Description(\"osoitteen osa, joka viittaa tiettyyn maantieteelliseen alueeseen tai organisaatioon\")\r\n PostalDistrict: string = \"\";\r\n}","import { Title } from '../../utils/tooltipUtil';\r\nimport { Description } from \"../../utils/tooltipUtil\";\r\nimport { Base } from '../base';\r\n\r\nexport default class TaxBuildingGrounds extends Base {\r\n @Title(\"Alkupäivä\")\r\n @Description(\"Päivämäärä, josta lähtien maapohja on olemassa Verohallinnon kiinteistötietokannassa.\")\r\n StartDate: Date = new Date();\r\n @Title(\"Loppupäivä\")\r\n @Description(\"Päivämäärä, jona maapohjan voimassaolo lakkaa.\")\r\n EndDate: Date = new Date();\r\n @Title(\"Kaavan laji\")\r\n @Description(\"Maankäyttö- ja rakennuslaissa määritellyn maankäyttösuunnitelman tai -rajoituksen luokittelu. Arvot asemakaava, ranta-asemakaava, ei asemakaavaa. (tässä kokeilussa koodistoksi valittu RYTJ:in kaavalaji-koodisto)\")\r\n ZoningPlanType: string = \"\";\r\n @Title(\"Kaavan mukainen käyttötarkoitus\")\r\n @Description(\"Asema- tai ranta-asemakaavaan merkitty korttelin tai sen osan käyttötarkoitusmerkintä. Verohallinto käyttää Ympäristöministeriön maankäyttö- ja rakennuslain mukaisissa kaavoissa käytettävistä merkinnöistä antaman asetuksen (2000) mukaista luokitusta. Verohallinnon kiinteistötietoihin merkitty kaavan mukainen käyttötarkoitus voi siis poiketa kunnan asemakaavan kaavamerkinnästä, sillä asemakaavassa voidaan käyttää kuntakohtaisia tarkenteita. Asemakaava-alueella sijaitsevaan maapohjaan sovelletava aluehinta määräytyy kaavan mukaisen käyttötarkoituksen perusteella.\")\r\n ZoningPlanUse: string = \"\";\r\n @Title(\"Pinta-ala\")\r\n @Description(\"Maapohjan pinta-ala.\")\r\n Area: number = 0;\r\n @Title(\"Rakennusoikeus\")\r\n @Description(\"Kunnalta saatava tieto rakennusoikeudesta (k-m2). Tieto voi olla maapohjatyypeillä rakennusmaa, muu maa ja 3D-kiinteistö.\")\r\n BuildingRight: number = 0;\r\n}","import { Title } from '../../utils/tooltipUtil';\r\nimport { Description } from \"../../utils/tooltipUtil\";\r\nimport { Base } from '../base';\r\nimport TaxBuildingAddress from \"./taxBuildingAddress\";\r\nimport TaxBuildingGrounds from \"./taxBuildingGrounds\";\r\nimport TaxBuildingSection from \"./taxBuildingSection\";\r\n\r\nexport default class TaxBuilding extends Base {\r\n @Title(\"Pysyvä rakennustunnus\")\r\n @Description(\"Rakennuksen pysyvä tunnus.\")\r\n PermanentBuildingID: string = \"\";\r\n @Title(\"Käyttötarkoitus\")\r\n @Description(\"Rakennuksen tai sen osan pääasiallinen käyttötarkoitus.\")\r\n PurposeOfUse: string = \"\";\r\n @Title(\"Kerrosala\")\r\n @Description(\"Kerrosala poikkeaa normaalisti rakennuksen tietona esitettävästä pinta-alasta. Kerrosalaan ei lasketa ullakolla tai kellarissa sijaitsevia, muita kuin pääasiallisen käyttötarkoituksen mukaisia tiloja.\")\r\n FloorArea: number = 0;\r\n @Title(\"Rakennuksen kokonaisala yhteensä\")\r\n @Description(\"Rakennuksen kaikkien osien yhteenlaskettu kokonaisala.\")\r\n TotalBuildingArea: number = 0;\r\n @Title(\"Rakennuksen nimi\")\r\n @Description(\"Rakennuksen yksilöivä nimitieto, esimerkiksi asiakkaan rakennukselle antama nimi.\")\r\n NameOfBuilding: string = \"\";\r\n @Title(\"Osoite\")\r\n @Description(\"Sijaintipaikan osoittavien tietojen kokonaisuus\")\r\n Address: TaxBuildingAddress = new TaxBuildingAddress();\r\n @Title(\"Maapohja\")\r\n @Description(\"Maapohja on osapuolen varallisuuden laji, osa kiinteistöä. Kiinteistö koostuu yhdestä tai useammasta maapohjasta, joihin kiinteistö jaetaan arvostamista varten. Saman kiinteistön eri maapohjiin voidaan soveltaa eri kiinteistöveroprosenttia maapohjan käytön mukaan. Maapohja voi olla myös kiinteistöverosta vapaa.\")\r\n Ground: TaxBuildingGrounds = new TaxBuildingGrounds();\r\n @Title(\"Rakennuksen osa(t)\")\r\n @Description(\"Arvostamisen vuoksi rakennus joudutaan tietyissä tilanteissa jakamaan osiin.\")\r\n Sections: TaxBuildingSection[] = [];\r\n}","import { Title } from '../../utils/tooltipUtil';\r\nimport { Description } from \"../../utils/tooltipUtil\";\r\nimport { Base } from '../base';\r\n\r\nexport default class TaxBuildingSection extends Base {\r\n @Title(\"Rakennustyyppi\")\r\n @Description(\"http://uri.suomi.fi/datamodel/ns/kive#buildingType\")\r\n BuildingType: string = \"\";\r\n @Title(\"Rakentamisen aloittamispäivä\")\r\n @Description(\"Päivämäärä, jolloin rakennusta (rakennuksen osaa) on alettu rakentaa. Vanhemmilla rakennuksilla ei ole aloittamispäivää, ainoastaan valmistumisvuosi.\")\r\n DateOfStart: Date = new Date();\r\n @Title(\"Valmistumispäivä\")\r\n @Description(\"Päivämäärä, jolloin rakennus katsotaan valmistuneeksi. Rakennus katsotaan kiinteistöverotuksessa valmistuneeksi silloin, kun rakennukselle on myönnetty käyttöönottolupa.\")\r\n DateOfCompletion: Date = new Date();\r\n @Title(\"Autopaikkojen lukumäärä\")\r\n @Description(\"Pysäköintitalo -rakennustyypin ominaisuustieto, yksikkö kpl.\")\r\n NumberOfParkingSpaces: number = 0;\r\n @Title(\"Hissi\")\r\n @Description(\"Asuinkerrostalo -rakennustyypin ominaisuustieto. Arvot: kyllä/ei.\")\r\n Elevator: boolean = false;\r\n @Title(\"Sähkö\")\r\n @Description(\"Pientalo ja vapaa-ajan asunto -rakennustyyppien ominaisuustieto. Arvot: kyllä/ei. Rakennuksessa katsotaan olevan sähkö, kun rakennus on liitetty sähköverkkoon tai siihen johdetaan 230V sähkövirta riippumatta sähköenergian tuotantotavasta.\")\r\n Electricity: boolean = false;\r\n @Title(\"Viemäri\")\r\n @Description(\"Pientalon ja vapaa-ajan asunto -rakennustyyppien ominaisuustieto. Viemärinä pidetään sellaista rakennukseen kiinteästi asennettua viemäröintijärjestelmää, joka päättyy alueelliseen viemäriverkostoon, saostus- tai umpikaivoon tai pienpuhdistamoon.\")\r\n Sewer: boolean = false;\r\n @Title(\"Vesijohto\")\r\n @Description(\"Pientalo- ja vapaa-ajan asunto -rakennustyyppien ominaisuustieto. Arvot: kyllä/ei. Vesijohtona pidetään sellaista rakennukseen kiinteästi asennettua vesijohtojärjestelmää, johon vesi tulee alueellisesta vesijohtoverkostosta tai kaivosta (rengas- tai porakaivo) joko paineella tai pumpulla.\")\r\n Water: boolean = false;\r\n @Title(\"Kerrosluku\")\r\n @Description(\"Kerrosten lukumäärä. Asuinkerrostalo, myymälärakennus ja muu rakennus -rakennustyyppien ominaisuustieto (kpl).\")\r\n NumberOfFloors: number = 0;\r\n @Title(\"Huoneistojen lukumäärä\")\r\n @Description(\"Pientalo (paritalot, rivitalot) ja asuinkerrostalo -rakennustyyppien ominaisuustieto (kpl).\")\r\n NumberOfApartments: number = 0;\r\n @Title(\"Kantava rakenne\")\r\n @Description(\"Kaikkien rakennustyyppien ominaisuustieto. Arvot: Puu, Kivi/metalli. Tieto vaikuttaa sovellettavaan ikäalennusprosenttiin.\")\r\n BearingStructure: string = \"\";\r\n @Title(\"Lämmitys\")\r\n @Description(\"Pientalo -rakennustyypin ominaisuustieto. Arvot keskuslämmitys, muu kuin keskuslämmitys.\")\r\n Heating: string = \"\";\r\n @Title(\"Kokonaisala\")\r\n @Description(\"Rakennuksen tai sen osan kokonaisala eli pinta-ala ulkomitoin sisältäen kaikkien kerrosten, kellareiden ja lämpöeristettyjen ullakkohuoneiden pinta-alat. Kokonaisalaan ei lasketa parvekkeita, katoksia eikä tiloja, joissa vapaa korkeus on alle 160 cm.\")\r\n TotalArea: number = 0;\r\n @Title(\"Kerroskorkeus\")\r\n @Description(\"Asuinkerrostalo ja myymälärakennus -rakennustyyppien ominaisuustieto.\")\r\n FloorHeight: number = 0;\r\n @Title(\"Tilavuus\")\r\n @Description(\"Rakennuksen tai sen osan tilavuus kuutiometreinä\")\r\n Volume: number = 0;\r\n @Title(\"Peruskorjauksen kohde\")\r\n @Description(\"Eri kohteisiin kohdistuvat peruskorjaukset vähentävät ikäalennuksia eri prosenttiyksikkömäärän. Kohteena voi olla seuraavat: Lämmitysjärjestelmä, Vesijohto ja viemäri, Sähkölaitteet, Ovet ja ikkunat, Vesikate ja ulkoseinien pinnoite, Ulkopuolinen lisäeriste, Koneellinen ilmastointi, Muu.\")\r\n RenovationObject: string = \"\";\r\n @Title(\"Peruskorjausvuosi\")\r\n @Description(\"Tieto esiintyy muodossa peruskorjausvuosi ja perusparannusvuosi. Kuvaa vuotta, jona peruskorjaukset on tehty. Jos peruskorjaushanke on kestänyt useita vuosia, korjausten valmistumisvuosi.\")\r\n RenovationYear: number = 0;\r\n}","/** @jsx jsx */\r\nimport {jsx} from '@emotion/core'\r\nimport React from \"react\";\r\n\r\nimport ReactDataGrid from \"react-data-grid\";\r\nimport { Editors } from \"react-data-grid-addons\";\r\n\r\nimport { Button } from '@material-ui/core';\r\nimport _ from 'lodash';\r\nimport { Rakennusosa } from '../../../model/servicePlan/rakennusOsa';\r\nimport { Aikayksikko } from '../../../model/servicePlan/aika';\r\n\r\ninterface Updater {\r\n (message: structureEditValue[]): void;\r\n}\r\n\r\ninterface Props {\r\n data: structureEditValue[]\r\n updated: Updater;\r\n}\r\n\r\nconst { DropDownEditor } = Editors as any;\r\n\r\nexport const buildingTypes = [\r\n { id: Rakennusosa.NotSet, value:\"VALITSE RAKENNUSOSA\" }, \r\n { id: Rakennusosa.Alapohjakanaalit, value:\"Alapohja kanaalit\" },\r\n { id: Rakennusosa.Alapohjalaatat, value:\"Alapohjalaatat\" },\r\n { id: Rakennusosa.Alapohjat, value:\"Alapohjat\" },\r\n { id: Rakennusosa.Anturat, value:\"Anturat\" },\r\n { id: Rakennusosa.Erityisetalapohjat, value:\"Erityiset alapohjat\" },\r\n { id: Rakennusosa.Erityisetperustukset, value:\"Erityiset perustukset\" },\r\n { id: Rakennusosa.Erityisetrunkorakenteet, value:\"Erityiset runkorakenteet\" },\r\n { id: Rakennusosa.Kantavatseinat, value:\"Kantavat seinat\" },\r\n { id: Rakennusosa.PPP, value:\"PPP\" },\r\n { id: Rakennusosa.Palkit, value:\"Palkit\" },\r\n { id: Rakennusosa.Perustukset, value:\"Perustukset\" },\r\n { id: Rakennusosa.Pilarit, value:\"Pilarit\" },\r\n { id: Rakennusosa.Runko, value:\"Runko\" },\r\n { id: Rakennusosa.Runkoportaat, value:\"Runkoportaat\" },\r\n { id: Rakennusosa.TaloOsat, value:\"Talon osat\" },\r\n { id: Rakennusosa.Vaestonsuojat, value:\"Vaestonsuojat\" },\r\n { id: Rakennusosa.Valipohjat, value:\"Valipohjat\" },\r\n { id: Rakennusosa.Ylapohjat, value:\"Ylapohjat\" }\r\n ];\r\n\r\n export const timeFrames = [\r\n { id: Aikayksikko.Monthly, value:\"Kuukauden välein\" },\r\n { id: Aikayksikko.Yearly, value:\"Vuoden välein\" }\r\n ];\r\n\r\n const timeFrameEditor = ;\r\n\r\n const buildingTypeEditor = ;\r\n\r\n const columns = [\r\n { key: \"toimenpiteenNimi\", name: \"Toimenpide\", editable: true, width: 140 },\r\n { key: \"toimenpideVuosi\", name: \"Vuosi\", editable: true, width: 60 },\r\n { key: \"kustannukset\", name: \"Kustannukset\", editable: true, width: 120 },\r\n { key: \"peruste\", name: \"Peruste\", editable: true, width: 200 },\r\n \r\n { key: \"rakennusosa\", name: \"Rakennusosa\", width: 180, editor: buildingTypeEditor },\r\n { key: \"rakennetyyppi\", name: \"Rakenne tyyppi\", editable: true, width: 180 },\r\n { key: \"tarkastusvaliaikavali\", name: \"\", width: 50,editable: true },\r\n { key: \"tarkastusvaliyksikko\", name: \"Tarkastus\", width: 200, editor: timeFrameEditor },\r\n { key: \"huoltovaliaikavali\", name: \"\", width: 50, editable: true },\r\n { key: \"huoltovaliyksikko\", name: \"Huollot\", width: 200, editor: timeFrameEditor }\r\n ];\r\n\r\n export class structureEditValue {\r\n public toimenpiteenNimi: string = \"\";\r\n public toimenpideVuosi: string = \"\";\r\n public kustannukset: string = \"\";\r\n public peruste: string = \"\";\r\n \r\n public rakennusosa : string = \"\";\r\n public rakennetyyppi : string = \"\";\r\n public tarkastusvaliaikavali : string = \"\";\r\n public tarkastusvaliyksikko : string = \"\";\r\n public huoltovaliaikavali : string = \"\";\r\n public huoltovaliyksikko : string = \"\";\r\n }\r\n\r\nclass RakenneEditor extends React.Component {\r\n constructor(props: Props, data : any) {\r\n super(props);\r\n if (props.data) {\r\n this.setState({data: props.data});\r\n }\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps: Props) {\r\n return {data: nextProps.data};\r\n }\r\n\r\n handleChange(e: any) {\r\n let change = this.state;\r\n _.set(change, e.target.name, e.target.value)\r\n this.setState(change)\r\n }\r\n\r\n onGridRowsUpdated(params: any) {\r\n var rows = this.state.data;\r\n \r\n for (let i = params.fromRow; i <= params.toRow; i++) {\r\n rows[i] = { ...rows[i], ...params.updated };\r\n }\r\n \r\n this.setState({data: rows});\r\n this.props.updated(rows);\r\n };\r\n\r\n addNewStructure() {\r\n var rows = this.state.data;\r\n var structure = new structureEditValue();\r\n structure.rakennusosa = buildingTypes[0].value as any;\r\n structure.rakennetyyppi = \"Syötä rakennetyyppi\";\r\n structure.huoltovaliaikavali = \"1\";\r\n structure.huoltovaliyksikko = timeFrames[1].value as any;\r\n structure.tarkastusvaliaikavali = \"1\";\r\n structure.tarkastusvaliyksikko = timeFrames[1].value as any;\r\n rows.push(structure);\r\n this.setState({data: rows});\r\n }\r\n\r\n render() {\r\n return (\r\n