Addressed comments

This commit is contained in:
Joaquin Ossa 2024-12-30 12:11:45 +01:00
parent 60ebb13f1d
commit c01d09d9f6
2 changed files with 31 additions and 122 deletions

View file

@ -121,16 +121,6 @@ with
upper(vr.protection_type) = '{{ damage_waiver }}' upper(vr.protection_type) = '{{ damage_waiver }}'
and upper(vr.verification_status) <> '{{ rejected_status }}' and upper(vr.verification_status) <> '{{ rejected_status }}'
), ),
bookings_with_booking_fee as (
select *
from rejected_bookings
union all
select *
from cancelled_bookings
union all
select *
from damage_waiver_bookings
),
-- Basic Protection bookings that have been approved or flagged and are not -- Basic Protection bookings that have been approved or flagged and are not
-- cancelled. -- cancelled.
approved_or_flagged_basic_protection_bookings as ( approved_or_flagged_basic_protection_bookings as (
@ -237,6 +227,16 @@ with
and vr.is_cancelled is false and vr.is_cancelled is false
and vr.is_protected is true and vr.is_protected is true
), ),
bookings_with_booking_fee as (
select *
from rejected_bookings
union all
select *
from cancelled_bookings
union all
select *
from damage_waiver_bookings
),
bookings_with_nightly_fee as ( bookings_with_nightly_fee as (
select * select *
from approved_or_flagged_basic_protection_bookings from approved_or_flagged_basic_protection_bookings
@ -265,34 +265,19 @@ select
vr.is_cancelled, vr.is_cancelled,
vr.cancelled_at_utc, vr.cancelled_at_utc,
vr.cancelled_date_utc, vr.cancelled_date_utc,
bbf.booking_fee_in_local_currency, coalesce(bnf.nightly_fee_in_local_currency, 0) * vr.number_of_nights
bnf.nightly_fee_in_local_currency, + coalesce(bbf.booking_fee_in_local_currency, 0) as total_fee_in_local_currency,
bnf.nightly_fee_in_local_currency coalesce(bnf.discount_percentage, 0) as discount_percentage,
* vr.number_of_nights as total_fee_in_local_currency, coalesce(bnf.nightly_fee_in_local_currency, 0)
bnf.discount_percentage,
bnf.nightly_fee_in_local_currency
* vr.number_of_nights * vr.number_of_nights
* bnf.discount_percentage * coalesce(bnf.discount_percentage, 0)
/ 100 as discount_amount_in_local_currency, / 100 as discount_amount_in_local_currency,
bnf.nightly_fee_in_local_currency coalesce(bbf.booking_fee_in_local_currency, 0)
+ coalesce(bnf.nightly_fee_in_local_currency, 0)
* vr.number_of_nights * vr.number_of_nights
* (100 - bnf.discount_percentage) * (100 - coalesce(bnf.discount_percentage, 0))
/ 100 as fee_after_discount_in_local_currency, / 100 as total_fee_after_discount_in_local_currency,
coalesce(bbf.invoice_date_utc, bnf.invoice_date_utc) as invoice_date_utc, coalesce(bbf.invoice_date_utc, bnf.invoice_date_utc) as invoice_date_utc,
vr.user_email,
vr.company_name,
vr.property_manager_name,
vr.property_manager_email,
vr.listing_name,
vr.listing_address,
vr.listing_town,
vr.listing_country,
vr.listing_postcode,
vr.pets_allowed,
vr.status_updated_at_utc,
vr.status_updated_date_utc,
vr.updated_at_utc,
vr.updated_date_utc,
vr.creation_at_utc, vr.creation_at_utc,
vr.creation_date_utc, vr.creation_date_utc,
vr.cosmos_created_date_utc vr.cosmos_created_date_utc

View file

@ -346,12 +346,14 @@ models:
data_tests: data_tests:
- not_null - not_null
- name: int_screen_and_protect__invoices - name: int_screen_and_protect__verification_fees
description: | description: |
This table contains records of invoices related to verification requests This table contains all records for verification requests
from the Screen and Protect API. from the Screen and Protect API and their fees.
It tracks financial details such as fees, discounts, and booking-related It tracks financial details such as booking fees, discounts and
metadata. some booking-related metadata.
Documentation:
https://www.notion.so/knowyourguest-superhog/Invoice-Screen-Protect-1610446ff9c980f88de6d6293b4fab03?pvs=4
columns: columns:
- name: id_verification - name: id_verification
data_type: text data_type: text
@ -482,24 +484,6 @@ models:
data_type: date data_type: date
description: "Date when the booking was canceled." description: "Date when the booking was canceled."
- name: booking_fee_in_local_currency
data_type: numeric
description: "Fee in local currency associated with the booking."
tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 10000
strictly: true
- name: nightly_fee_in_local_currency
data_type: numeric
description: "Nightly fee in local currency for the booking."
tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 10000
strictly: true
- name: total_fee_in_local_currency - name: total_fee_in_local_currency
data_type: numeric data_type: numeric
description: "Total fee in local currency, inclusive of all charges." description: "Total fee in local currency, inclusive of all charges."
@ -508,6 +492,7 @@ models:
min_value: 0 min_value: 0
max_value: 10000000 max_value: 10000000
strictly: true strictly: true
- not_null
- name: discount_percentage - name: discount_percentage
data_type: numeric data_type: numeric
@ -517,6 +502,7 @@ models:
min_value: 0 min_value: 0
max_value: 99 max_value: 99
strictly: false strictly: false
- not_null
- name: discount_amount_in_local_currency - name: discount_amount_in_local_currency
data_type: numeric data_type: numeric
@ -526,8 +512,9 @@ models:
min_value: 0 min_value: 0
max_value: 10000000 max_value: 10000000
strictly: false strictly: false
- not_null
- name: fee_after_discount_in_local_currency - name: total_fee_after_discount_in_local_currency
data_type: numeric data_type: numeric
description: "Total fee in local currency after applying the discount." description: "Total fee in local currency after applying the discount."
tests: tests:
@ -535,6 +522,7 @@ models:
min_value: 0 min_value: 0
max_value: 10000000 max_value: 10000000
strictly: true strictly: true
- not_null
- name: invoice_date_utc - name: invoice_date_utc
data_type: date data_type: date
@ -542,70 +530,6 @@ models:
tests: tests:
- not_null - not_null
- name: user_email
data_type: text
description: "Email address of the user associated with the booking."
- name: company_name
data_type: text
description: "Name of the company associated with the booking."
- name: property_manager_name
data_type: text
description: "Name of the property manager."
- name: property_manager_email
data_type: text
description: "Email address of the property manager."
- name: listing_name
data_type: text
description: "Name of the listing."
- name: listing_address
data_type: text
description: "Address of the listing."
- name: listing_town
data_type: text
description: "Town where the listing is located."
- name: listing_country
data_type: text
description: "Country code where the listing is located."
- name: listing_postcode
data_type: text
description: "Postcode of the listing."
- name: pets_allowed
data_type: boolean
description: "Indicates if pets are allowed at the listing."
- name: status_updated_at_utc
data_type: timestamp without time zone
description: "Timestamp of the last status update for the verification."
tests:
- not_null
- name: status_updated_date_utc
data_type: date
description: "Date of the last status update for the verification."
tests:
- not_null
- name: updated_at_utc
data_type: timestamp without time zone
description: "Timestamp of the last update to the record."
tests:
- not_null
- name: updated_date_utc
data_type: date
description: "Date of the last update to the record."
tests:
- not_null
- name: creation_at_utc - name: creation_at_utc
data_type: timestamp without time zone data_type: timestamp without time zone
description: "Timestamp of when the reservation was created." description: "Timestamp of when the reservation was created."