Merged PR 4117: Added PMS info

# Description

Added PMS info to `int_core__user_host` and propagated data to where needed

# Checklist

- [x] The edited models and dependants run properly with production data.
- [x] The edited models are sufficiently documented.
- [x] The edited models contain PK tests, and I've ran and passed them.
- [x] I have checked for DRY opportunities with other models and docs.
- [x] I've picked the right materialization for the affected models.

# Other

- [ ] Check if a full-refresh is required after this PR is merged.

Added PMS info

Related work items: #26589
This commit is contained in:
Joaquin Ossa 2025-01-21 08:07:22 +00:00
commit 90967fd34e
5 changed files with 96 additions and 26 deletions

View file

@ -26,34 +26,19 @@ with
select
id_deal,
main_deal_name,
has_active_pms,
active_pms_list,
first_created_date_utc as deal_start_date,
date_trunc('month', first_created_date_utc) as deal_start_month,
main_billing_country_iso_3_per_deal
from {{ ref("int_core__deal") }}
),
integrations_per_user as (
select
icuh.id_deal,
sci.id_superhog_user as id_user,
scit.display_name as active_pms
from {{ ref("stg_core__integration") }} sci
left join
{{ ref("stg_core__integration_type") }} scit
on sci.id_integration_type = scit.id_integration_type
left join
{{ ref("int_core__user_host") }} icuh
on sci.id_superhog_user = icuh.id_user_host
where sci.is_active = true and icuh.is_missing_id_deal = false
),
integrations_per_deal as (
select id_deal, string_agg(distinct active_pms, ', ') as distinct_active_pms
from integrations_per_user
group by id_deal
),
combined_deals as (
select
coalesce(hd.id_deal, cd.id_deal) as id_deal,
coalesce(hd.main_deal_name, cd.main_deal_name) as main_deal_name,
coalesce(cd.has_active_pms, false) as has_active_pms,
cd.active_pms_list,
cd.main_billing_country_iso_3_per_deal,
min(
coalesce(hd.deal_start_date, cd.deal_start_date)
@ -66,15 +51,13 @@ with
min(hd.hubspot_listing_segmentation) as hubspot_listing_segmentation
from hubspot_deals hd
full outer join core_deals cd on hd.id_deal = cd.id_deal
group by 1, 2, 3
group by 1, 2, 3, 4, 5
)
select
cd.id_deal,
cd.main_deal_name,
case
when ipd.distinct_active_pms is null then false else true
end as has_active_pms,
ipd.distinct_active_pms as active_pms_list,
cd.has_active_pms,
cd.active_pms_list,
cd.main_billing_country_iso_3_per_deal,
cd.effective_deal_start_date_utc,
cd.effective_deal_start_month,
@ -82,4 +65,3 @@ select
cd.hubspot_deal_cancellation_month,
cd.hubspot_listing_segmentation
from combined_deals cd
left join integrations_per_deal ipd on cd.id_deal = ipd.id_deal