{% set dimensions = get_kpi_dimensions_per_model("DEALS") %}

{{ config(materialized="table", unique_key=["date", "dimension", "dimension_value"]) }}


{% for dimension in dimensions %}
    select
        -- Unique Key --
        d.date,
        {{ dimension.dimension }} as dimension,
        {{ dimension.dimension_value }} as dimension_value,
        -- Date Attributes --
        d.is_current_month,
        d.is_end_of_month,
        d.is_month_to_date,
        -- Metrics --
        sum(new_deals) as new_deals,
        sum(never_booked_deals) as never_booked_deals,
        sum(active_deals) as active_deals,
        sum(churning_deals) as churning_deals,
        sum(inactive_deals) as inactive_deals,
        sum(reactivated_deals) as reactivated_deals,
        sum(deals_booked_in_month) as deals_booked_in_month,
        sum(deals_booked_in_6_months) as deals_booked_in_6_months,
        sum(deals_booked_in_12_months) as deals_booked_in_12_months
    from {{ ref("int_kpis__dimension_dates") }} d
    left join {{ ref("int_kpis__metric_daily_deals") }} as mdd on d.date = mdd.date
    group by 1, 2, 3, 4, 5, 6
    {% if not loop.last %}
        union all
    {% endif %}
{% endfor %}
