Merged PR 5353: Switch int_core__booking_summary to int_booking_summary
# Description This PR does the following: * Moves `core/int_core__booking_summary` to `cross/int_core__booking_summary` * Renames the model `cross/int_core__booking_summary` to `cross/int_booking_summary` * Same for schema entry. In the new schema, I just added in the description how to retrieve exclusively New Dash Bookings for usability purposes. Then, it adapts any dependency on `int_core__booking_summary` to `int_booking_summary` No additional changes - inclusion of Resolution Incidents data will come later in a different PR. # 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. Related work items: #30676
This commit is contained in:
parent
a9a1e68624
commit
d33e5ff2b2
17 changed files with 399 additions and 393 deletions
176
models/intermediate/cross/int_booking_summary.sql
Normal file
176
models/intermediate/cross/int_booking_summary.sql
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
{{ config(materialized="table", unique_key=["id_booking"]) }}
|
||||
with
|
||||
int_core__booking_to_service as (
|
||||
select * from {{ ref("int_core__booking_to_service") }}
|
||||
),
|
||||
int_core__booking_service_detail as (
|
||||
select * from {{ ref("int_core__booking_service_detail") }}
|
||||
)
|
||||
|
||||
select
|
||||
bts.id_booking,
|
||||
bts.id_verification_request,
|
||||
bts.id_accommodation,
|
||||
bts.id_user_product_bundle,
|
||||
bts.id_deal,
|
||||
bts.id_user_host,
|
||||
bts.id_user_guest,
|
||||
bts.booking_status,
|
||||
bts.program_name,
|
||||
bts.booking_created_at_utc,
|
||||
bts.booking_created_date_utc,
|
||||
bts.booking_updated_at_utc,
|
||||
bts.booking_updated_date_utc,
|
||||
bts.booking_check_in_at_utc,
|
||||
bts.booking_check_in_date_utc,
|
||||
bts.booking_check_out_at_utc,
|
||||
bts.booking_check_out_date_utc,
|
||||
bts.booking_number_of_nights,
|
||||
bts.host_currency_code,
|
||||
bts.is_user_in_new_dash,
|
||||
bts.new_dash_version,
|
||||
bts.user_in_new_dash_since_timestamp_at_utc,
|
||||
sum(bsd.service_total_price_in_gbp) as booking_total_price_in_gbp,
|
||||
min(bsd.service_first_chargeable_date_utc) as service_first_chargeable_date_utc,
|
||||
max(bsd.service_last_chargeable_date_utc) as service_last_chargeable_date_utc,
|
||||
min(bsd.service_first_billable_date_utc) as service_first_billable_date_utc,
|
||||
max(bsd.service_last_billable_date_utc) as service_last_billable_date_utc,
|
||||
min(bsd.service_detail_created_at_utc) as service_first_created_at_utc,
|
||||
max(bsd.service_detail_created_at_utc) as service_last_created_at_utc,
|
||||
max(bsd.service_detail_updated_at_utc) as service_last_updated_at_utc,
|
||||
count(distinct bsd.id_booking_service_detail) as number_of_applied_services,
|
||||
count(
|
||||
distinct case
|
||||
when bsd.is_paid_service then bsd.id_booking_service_detail else null
|
||||
end
|
||||
) as number_of_applied_paid_services,
|
||||
count(
|
||||
distinct case
|
||||
when bsd.is_upgraded_service then bsd.id_booking_service_detail else null
|
||||
end
|
||||
) as number_of_applied_upgraded_services,
|
||||
count(
|
||||
distinct case
|
||||
when bsd.is_billable_service then bsd.id_booking_service_detail else null
|
||||
end
|
||||
) as number_of_applied_billable_services,
|
||||
case
|
||||
when
|
||||
sum(bsd.service_total_price_in_gbp) > 0
|
||||
and min(bsd.service_first_chargeable_date_utc) is not null
|
||||
then true
|
||||
else false
|
||||
end as is_booking_chargeable,
|
||||
case
|
||||
when
|
||||
sum(
|
||||
case
|
||||
when bsd.is_billable_service
|
||||
then bsd.service_total_price_in_gbp
|
||||
else 0
|
||||
end
|
||||
)
|
||||
> 0
|
||||
and min(bsd.service_first_billable_date_utc) is not null
|
||||
then true
|
||||
else false
|
||||
end as is_booking_billable,
|
||||
case
|
||||
when sum(case when bsd.is_missing_currency_code then 1 else 0 end) > 0
|
||||
then true
|
||||
else false
|
||||
end as is_missing_currency_code_in_service_detail,
|
||||
case
|
||||
when sum(case when bsd.is_booking_cancelled then 1 else 0 end) > 0
|
||||
then true
|
||||
else false
|
||||
end as is_booking_cancelled,
|
||||
case
|
||||
when bts.id_verification_request is null then false else true
|
||||
end as has_verification_request,
|
||||
case
|
||||
when sum(case when bsd.is_paid_service then 1 else 0 end) > 0
|
||||
then true
|
||||
else false
|
||||
end as has_paid_services,
|
||||
case
|
||||
when sum(case when bsd.is_upgraded_service then 1 else 0 end) > 0
|
||||
then true
|
||||
else false
|
||||
end as has_upgraded_services,
|
||||
case
|
||||
when sum(case when bsd.is_billable_service then 1 else 0 end) > 0
|
||||
then true
|
||||
else false
|
||||
end as has_billable_services,
|
||||
case
|
||||
when
|
||||
sum(case when bsd.service_business_type = 'SCREENING' then 1 else 0 end) > 0
|
||||
then true
|
||||
else false
|
||||
end as has_screening_service_business_type,
|
||||
case
|
||||
when
|
||||
sum(
|
||||
case
|
||||
when
|
||||
bsd.service_business_type = 'SCREENING'
|
||||
and bsd.service_name <> {{ var("default_service") }}
|
||||
then 1
|
||||
else 0
|
||||
end
|
||||
)
|
||||
> 0
|
||||
then true
|
||||
else false
|
||||
end as has_upgraded_screening_service_business_type,
|
||||
case
|
||||
when
|
||||
sum(
|
||||
case
|
||||
when bsd.service_business_type = 'DEPOSIT_MANAGEMENT' then 1 else 0
|
||||
end
|
||||
)
|
||||
> 0
|
||||
then true
|
||||
else false
|
||||
end as has_deposit_management_service_business_type,
|
||||
case
|
||||
when
|
||||
sum(case when bsd.service_business_type = 'PROTECTION' then 1 else 0 end)
|
||||
> 0
|
||||
then true
|
||||
else false
|
||||
end as has_protection_service_business_type,
|
||||
bts.is_missing_id_deal,
|
||||
case
|
||||
when bts.host_currency_code is null then true else false
|
||||
end as is_missing_host_currency_code
|
||||
from int_core__booking_to_service bts
|
||||
inner join
|
||||
int_core__booking_service_detail bsd
|
||||
on bts.id_booking_service_detail = bsd.id_booking_service_detail
|
||||
group by
|
||||
bts.id_booking,
|
||||
bts.id_verification_request,
|
||||
bts.id_accommodation,
|
||||
bts.id_user_product_bundle,
|
||||
bts.id_deal,
|
||||
bts.id_user_host,
|
||||
bts.id_user_guest,
|
||||
bts.booking_status,
|
||||
bts.program_name,
|
||||
bts.booking_created_at_utc,
|
||||
bts.booking_created_date_utc,
|
||||
bts.booking_updated_at_utc,
|
||||
bts.booking_updated_date_utc,
|
||||
bts.booking_check_in_at_utc,
|
||||
bts.booking_check_in_date_utc,
|
||||
bts.booking_check_out_at_utc,
|
||||
bts.booking_check_out_date_utc,
|
||||
bts.booking_number_of_nights,
|
||||
bts.host_currency_code,
|
||||
bts.is_missing_id_deal,
|
||||
bts.is_user_in_new_dash,
|
||||
bts.new_dash_version,
|
||||
bts.user_in_new_dash_since_timestamp_at_utc
|
||||
Loading…
Add table
Add a link
Reference in a new issue