{{
    config(
        materialized="view",
        unique_key=[
            "end_date",
            "id_deal",
            "active_accommodations_per_deal_segmentation",
        ],
    )
}}

select
    -- Unique Key --
    d.first_day_month as start_date,
    d.date as end_date,
    gp.id_deal,
    gp.active_accommodations_per_deal_segmentation,
    -- Dimensions --
    gp.main_billing_country_iso_3_per_deal,
    -- Metrics --
    sum(gp.deposit_fees_in_gbp) as deposit_fees_in_gbp,
    sum(gp.waiver_payments_in_gbp) as waiver_payments_in_gbp,
    sum(gp.checkin_cover_fees_in_gbp) as checkin_cover_fees_in_gbp,
    sum(gp.total_guest_payments_in_gbp) as total_guest_payments_in_gbp
from {{ ref("int_kpis__dimension_dates") }} d
left join
    {{ ref("int_kpis__metric_daily_guest_payments") }} gp
    on date_trunc('month', gp.date)::date = d.first_day_month
where d.is_end_of_month = true and gp.id_deal is not null
group by 1, 2, 3, 4, 5
