# Description This PR handles the new price set for Athena in Nov.24, as indicated by Nila from Finance (see more detailes in linked story). Price has gone from 2.0GBP to 2.1GBP. Note that I have manually checked the correctness of the figures, I'm highly confident on the quality of the PR. All figures stay the same in old and new version of to the cutoff date (`2024-11-01T00:00:00Z`). Then, after that date, the 10 cents extra show appropiately. # 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: #26475
38 lines
1.3 KiB
SQL
38 lines
1.3 KiB
SQL
{% set ok_status = "Approved" %}
|
|
with
|
|
int_athena__verifications as (select * from {{ ref("int_athena__verifications") }}),
|
|
stg_seed__athena_price_history as (
|
|
select * from {{ ref("stg_seed__athena_price_history") }}
|
|
),
|
|
-- CTE to rank verifications by updated_at_utc per id_booking
|
|
ranked_verifications as (
|
|
select
|
|
v.*,
|
|
row_number() over (
|
|
partition by v.id_booking order by v.updated_at_utc asc
|
|
) as rn
|
|
from int_athena__verifications v
|
|
where v.version = 'V1' and v.id_booking is not null
|
|
)
|
|
select
|
|
v.id_verification,
|
|
v.id_booking,
|
|
v.verification_status,
|
|
v.is_cancelled,
|
|
-- Charge for 1 night if number_nights = 0
|
|
case
|
|
when v.number_nights = 0 and v.verification_status = '{{ ok_status }}'
|
|
then ph.fee_per_night_gbp
|
|
when v.verification_status = '{{ ok_status }}'
|
|
then v.number_nights * ph.fee_per_night_gbp
|
|
else 0
|
|
end as ok_status_fee_in_gbp,
|
|
v.created_date_utc,
|
|
v.checkout_date_utc
|
|
from ranked_verifications v
|
|
left join
|
|
stg_seed__athena_price_history ph
|
|
on v.checkout_date_utc between ph.start_at_utc and ph.end_at_utc
|
|
where
|
|
-- Select only the most recent verification for each id_booking
|
|
v.rn = 1
|