diff --git a/dbt/models/int/int_ataru/int_ataru_hakemus.sql b/dbt/models/int/int_ataru/int_ataru_hakemus.sql index 760717e..26d0e1c 100644 --- a/dbt/models/int/int_ataru/int_ataru_hakemus.sql +++ b/dbt/models/int/int_ataru/int_ataru_hakemus.sql @@ -28,7 +28,9 @@ final as ( when tila = 'inactivated' then cast(true as boolean) else cast(false as boolean) - end as poistettu + end as poistettu, + (tiedot ->> '1dc3311d-2235-40d6-88d2-de2bd63e087b')::boolean as urheilijatutkinto_kiinnostaa + from raw where row_nr = 1 diff --git a/dbt/models/int/int_hakutoive.sql b/dbt/models/int/int_hakutoive.sql index 93187b9..31663fe 100644 --- a/dbt/models/int/int_hakutoive.sql +++ b/dbt/models/int/int_hakutoive.sql @@ -28,6 +28,10 @@ valinnat as ( select * from {{ ref('int_valinta') }} ), +harkinnanvaraisuus as ( + select * from {{ ref('int_sure_harkinnanvaraisuus') }} +), + int as ( select hato.hakutoive_id, @@ -49,13 +53,15 @@ int as ( ) as viimeinen_vastaanottopaiva, vaot.vastaanottotieto, - vali.valintatapajonot + vali.valintatapajonot, + hava.harkinnanvaraisuuden_syy from hakutoive as hato left join julkaistu as julk on hato.hakukohde_henkilo_id = julk.hakukohde_henkilo_id left join hakemus as hake on hato.hakemus_oid = hake.hakemus_oid left join haku on hake.haku_oid = haku.haku_oid left join vastaanotto as vaot on hato.hakukohde_henkilo_id = vaot.hakukohde_henkilo_id left join valinnat as vali on hato.hakutoive_id = vali.hakutoive_id + left join harkinnanvaraisuus as hava on hato.hakutoive_id = hava.hakutoive_id ), final as ( @@ -78,7 +84,8 @@ final as ( case when vastaanotto_paattyy::time - viimeinen_vastaanottopaiva::time < '0:00:00'::time then 1 else 0 end ) as viimeinen_vastaanottopaiva, vastaanottotieto, - valintatapajonot + valintatapajonot, + harkinnanvaraisuuden_syy from int ) diff --git a/dbt/models/int/int_urheilijatutkinto.sql b/dbt/models/int/int_urheilijatutkinto.sql deleted file mode 100644 index 7199f38..0000000 --- a/dbt/models/int/int_urheilijatutkinto.sql +++ /dev/null @@ -1,31 +0,0 @@ -{{ - config( - indexes = [ - {'columns': ['hakemus_oid']} - ] - ) -}} - -with raw as ( --noqa: PRS - select - hakemus_oid, - jsonb_object_keys(tiedot) as keys, - tiedot -from {{ ref('int_ataru_hakemus') }} - where tiedot ?| - array[ - '1dc3311d-2235-40d6-88d2-de2bd63e087b' - ] - -), - -rows as ( - select * from raw where - keys = '1dc3311d-2235-40d6-88d2-de2bd63e087b_%' -) - -select - hakemus_oid, - split_part(keys,'_',2) as hakukohde, - (tiedot ->> keys)::boolean as tutkinto_urheilijana_kiinnostaa -from rows diff --git a/dbt/models/int/int_urheilijatutkinto_hakukohde.sql b/dbt/models/int/int_urheilijatutkinto_hakukohde.sql new file mode 100644 index 0000000..bbf6028 --- /dev/null +++ b/dbt/models/int/int_urheilijatutkinto_hakukohde.sql @@ -0,0 +1,32 @@ + with raw as ( + select + content, + row_number() over (partition by id order by versio_id desc, muokattu desc) as rownr + from {{ ref('dw_ataru_lomake') }} + WHERE + content @> '[{"id": "1dc3311d-2235-40d6-88d2-de2bd63e087b"}]' or + content @> '[{"id": "ammatillinen_perustutkinto_urheilijana"}]' + +), + +hakukohderyhma_hakukohde as ( + select * from {{ ref('int_hakukohderyhma_hakukohde') }} +), + +content as ( + select + jsonb_array_elements(content) as content + from raw where rownr = 1 +), + +hakukohderyhmat as ( + select + jsonb_array_elements_text(a.content -> 'belongs-to-hakukohderyhma') as hakukohderyhma_oid + from content a + where content ->> 'id' in ('1dc3311d-2235-40d6-88d2-de2bd63e087b','ammatillinen_perustutkinto_urheilijana') +) + +select distinct + haha.hakukohde_oid +from hakukohderyhma_hakukohde as haha +join hakukohderyhmat as hary on haha.hakukohderyhma_oid =hary.hakukohderyhma_oid diff --git a/dbt/models/int/int_yleiskayttoiset/int_onr_henkilo.sql b/dbt/models/int/int_yleiskayttoiset/int_onr_henkilo.sql index 6c33518..d420145 100644 --- a/dbt/models/int/int_yleiskayttoiset/int_onr_henkilo.sql +++ b/dbt/models/int/int_yleiskayttoiset/int_onr_henkilo.sql @@ -5,7 +5,8 @@ incremental_strategy = 'merge', indexes = [ {'columns': ['henkilo_oid','master_oid']}, - {'columns':['henkilo_oid','kansalaisuus']} + {'columns':['henkilo_oid','kansalaisuus']}, + {'columns':['muokattu']} ] ) }} diff --git a/dbt/models/pub/_pub.yml b/dbt/models/pub/_pub.yml index 21da4fa..43a8706 100644 --- a/dbt/models/pub/_pub.yml +++ b/dbt/models/pub/_pub.yml @@ -33,6 +33,8 @@ models: - name: valintatapajonot data_type: jsonb description: Hakutoiveen kaikkien valintatapajonojen tiedot json-muotoisena + - name: harkinnanvaraisuuden_syy + data_type: text - name: pub_dim_hakukohde description: Tämä taulu sisältää aktiiviset hakukohteet ja niiden tietoja. config: @@ -99,6 +101,10 @@ models: data_type: boolean - name: jarjestaa_urheilijan_ammkoulutusta data_type: boolean + - name: oppilaitoksen_opetuskieli + data_type: jsonb + - name: koulutus_oid + data_type: text - name: pub_dim_haku description: Hakujen tietoja config: diff --git a/dbt/models/pub/pub_dim_hakukohde.sql b/dbt/models/pub/pub_dim_hakukohde.sql index 0ff4a49..b7f91cb 100644 --- a/dbt/models/pub/pub_dim_hakukohde.sql +++ b/dbt/models/pub/pub_dim_hakukohde.sql @@ -35,6 +35,7 @@ int as ( hako.tila, hako.haku_oid, hako.toteutus_oid, + koul.koulutus_oid, hako.jarjestyspaikka_oid, hako.aloituspaikat, hako.aloituspaikat_ensikertalaisille, @@ -61,7 +62,8 @@ int as ( hako.koulutuksenalkamiskausi, (coalesce(haku.koulutuksen_alkamiskausi, tote.koulutuksen_alkamiskausi)) ) as koulutuksen_alkamiskausi, hako.toinenasteonkokaksoistutkinto as toinen_aste_onko_kaksoistutkinto, - coalesce(hako.jarjestaaurheilijanammkoulutusta, false) as jarjestaa_urheilijan_ammkoulutusta + coalesce(hako.jarjestaaurheilijanammkoulutusta, false) as jarjestaa_urheilijan_ammkoulutusta, + tote.oppilaitoksen_opetuskieli from hakukohde as hako left join toteutus as tote on hako.toteutus_oid = tote.toteutus_oid left join haku as haku on hako.haku_oid = haku.haku_oid @@ -88,7 +90,9 @@ final as ( tila, haku_oid, toteutus_oid, + koulutus_oid, jarjestyspaikka_oid, + oppilaitoksen_opetuskieli, aloituspaikat, aloituspaikat_ensikertalaisille, hakukohdekoodiuri, diff --git a/dbt/models/pub/pub_dim_hakutoive.sql b/dbt/models/pub/pub_dim_hakutoive.sql index e2746b1..cc85fb4 100644 --- a/dbt/models/pub/pub_dim_hakutoive.sql +++ b/dbt/models/pub/pub_dim_hakutoive.sql @@ -24,7 +24,8 @@ final as ( hakutoivenumero, viimeinen_vastaanottopaiva, vastaanottotieto, - valintatapajonot + valintatapajonot, + harkinnanvaraisuuden_syy from hakutoive ) diff --git a/dbt/models/pub/pub_dim_hakutoive_toinen_aste.sql b/dbt/models/pub/pub_dim_hakutoive_toinen_aste.sql index dfc4f1e..9431262 100644 --- a/dbt/models/pub/pub_dim_hakutoive_toinen_aste.sql +++ b/dbt/models/pub/pub_dim_hakutoive_toinen_aste.sql @@ -32,6 +32,10 @@ kaksoistutkinto as ( select * from {{ ref('int_kaksoistutkinto') }} ), +urheilijatutkinto as ( + select * from {{ ref('int_urheilijatutkinto_hakukohde') }} +), + ilmoittautuminen as ( select hakukohde_henkilo_id, @@ -48,12 +52,18 @@ final as ( coalesce(sora.sora_aiempi, '0') = '1' as sora_aiempi, hava.harkinnanvaraisuuden_syy, ilmo.tila, - coalesce(katu.kaksoistutkinto_kiinnostaa, false::boolean) as kaksoistutkinto_kiinnostaa + coalesce(katu.kaksoistutkinto_kiinnostaa, false::boolean) as kaksoistutkinto_kiinnostaa, + case + when urtu.hakukohde_oid is not null + then true::boolean + else false::boolean + end as urheilijatutkinto_kiinnostaa from hakutoive as hato left join sora on hato.hakutoive_id = sora.hakutoive_id left join harkinnanvaraisuus as hava on hato.hakutoive_id = hava.hakutoive_id left join ilmoittautuminen as ilmo on hato.hakukohde_henkilo_id = ilmo.hakukohde_henkilo_id left join kaksoistutkinto as katu on hato.hakutoive_id = katu.hakutoive_id + left join urheilijatutkinto as urtu on hato.hakukohde_oid = urtu.hakukohde_oid ) select final.*