{% snapshot m_DWH_FXCD_NH_F_ELIGIBILITY_MAP %}
{{
    config(
      target_schema='dw_rar',
      alias = 'NH_F_ELIGIBILITY_MAP_MARS',
      unique_key=['CTP_ID', 'ELIGIBILITY_ID'],
      strategy='check',
      check_cols=['LIMIT_AMT'],
      hard_deletes='invalidate',
      dbt_valid_to_current="TIMESTAMP '9999-12-31 00:00:00'",
      snapshot_meta_column_names={
        'dbt_valid_from': 'A_VALID_FROM',
        'dbt_valid_to': 'A_VALID_TO',
        'dbt_updated_at': 'UPDATED_AT',
        'dbt_scd_id': 'SCD_ID'
      },
      column_types={
        'A_VALID_FROM': 'DATE',
        'A_VALID_TO': 'DATE'
      },
      tags=["m_DWH_FXCD_NH_F_ELIGIBILITY_MAP"]
    )
}}

SELECT DISTINCT
    (SELECT COALESCE(MAX(A_KEY), 0) FROM {{ this }}) + ROW_NUMBER() OVER (ORDER BY 1) as A_KEY,
    CAST({{ get_workflow_history_key() }} AS NUMBER(38,0)) AS A_DWH_LOAD_SET_FK,
    CAST(CTP_ID AS NUMBER(28,0)) AS CTP_ID,
    CAST(ELIGIBILITY_ID AS NUMBER(28,0)) AS ELIGIBILITY_ID,
    CAST(NULL AS NUMBER(28,10)) AS OF_LIMIT_AMT, -- Not mapped in Informatica target, so excluded from check_cols
    CAST(NULL AS CHAR(1 CHAR)) AS OF_FLAG, -- Not mapped in Informatica target, so excluded from check_cols
    CAST(NULL AS NUMBER(28,10)) AS FR_LIMIT_AMT, -- Not mapped in Informatica target, so excluded from check_cols
    CAST(NULL AS CHAR(1 CHAR)) AS FR_MP_FLAG, -- Not mapped in Informatica target, so excluded from check_cols
    CAST(LIMIT_AMT AS NUMBER(28,10)) AS LIMIT_AMT
FROM
    {{ source('ods', 'F_ELIGIBILITY_MAP') }}
WHERE 
    A_WORKFLOW_HISTORY_KEY = {{ filter_workflow_history_max_key("w_ODS_FXCD_F_ELIGIBILITY_MAP",get_main_task_name(model.name))}}
{% endsnapshot %}