Merged PR 5429: Rework Booking Source in int_core__bookings
# Description This PR creates a proper Booking Source in `int_core__bookings` table. This mostly refers to ensure that whenever we do data requests tickets on this regards we have a proper logic in place (as last time we had issues because of this). Logic follows Gus recommendation on applying: ``` case when upper(coalesce(bsrc.booking_source, 'UNKNOWN')) = 'UNKNOWN' then b.raw_booking_source else bsrc.booking_source end ``` where b. is Booking table and bsrc. is Booking Source table. Things to note: * A new `stg_core__booking_source` table is created, full-refreshed from the backend (less than 10 records) * I added a unique test for `stg_core__booking` that was not in there. I don't document the rest of the model though. * I remove the previous `id_booking_source` as it wasn't used and the logic in place should be far more accurate. * I do NOT remove the existing `verification_request_booking_source`. I don't remember what's this but I see this is in use specially on Guest Insights (CSAT) and the legacy Truvi reporting (Bookings, PMS, etc.). Not the scope of this ticket to change it. * I don't do further propagation, but potentially, this could be extended to New Dash Booking Summary as this source is being shown in the dashboard itself. # 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: #30415
This commit is contained in:
parent
47c51dd18d
commit
0021827368
6 changed files with 56 additions and 6 deletions
|
|
@ -283,6 +283,8 @@ sources:
|
|||
identifier: VerificationRequestGuestProductToPayment
|
||||
- name: UserProductBundleToGuestProduct
|
||||
identifier: UserProductBundleToGuestProduct
|
||||
- name: BookingSource
|
||||
identifier: BookingSource
|
||||
|
||||
- name: guest_product
|
||||
schema: sync_guest_product
|
||||
|
|
|
|||
|
|
@ -114,6 +114,24 @@ models:
|
|||
- unique
|
||||
- not_null
|
||||
|
||||
- name: stg_core__booking
|
||||
columns:
|
||||
- name: id_booking
|
||||
data_tests:
|
||||
- unique
|
||||
- not_null
|
||||
|
||||
- name: stg_core__booking_source
|
||||
columns:
|
||||
- name: id_booking_source
|
||||
data_tests:
|
||||
- unique
|
||||
- not_null
|
||||
- name: booking_source
|
||||
data_tests:
|
||||
- unique
|
||||
- not_null
|
||||
|
||||
- name: stg_core__accommodation_to_user
|
||||
columns:
|
||||
- name: id_accommodation_to_user
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ with
|
|||
{{ adapter.quote("IntegrationId") }} as id_integration,
|
||||
{{ adapter.quote("AccommodationId") }} as id_accommodation,
|
||||
{{ adapter.quote("BookingSourceId") }} as id_booking_source,
|
||||
{{ adapter.quote("RawBookingSource") }} as raw_booking_source,
|
||||
{{ adapter.quote("VerificationRequestId") }} as id_verification_request,
|
||||
{{ adapter.quote("BookingStateId") }} as id_booking_state,
|
||||
{{ adapter.quote("CheckIn") }} as check_in_at_utc,
|
||||
|
|
|
|||
12
models/staging/core/stg_core__booking_source.sql
Normal file
12
models/staging/core/stg_core__booking_source.sql
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
with
|
||||
raw_booking_source as (select * from {{ source("core", "BookingSource") }}),
|
||||
stg_core__booking_source as (
|
||||
select
|
||||
{{ adapter.quote("Id") }} as id_booking_source,
|
||||
upper({{ adapter.quote("FullName") }}) as booking_source,
|
||||
{{ adapter.quote("_airbyte_extracted_at") }} as dwh_extracted_at_utc
|
||||
|
||||
from raw_booking_source
|
||||
)
|
||||
select *
|
||||
from stg_core__booking_source
|
||||
Loading…
Add table
Add a link
Reference in a new issue