with stg_xero__credit_notes as (select * from {{ ref("stg_xero__credit_notes") }})

select
    id_credit_note,
    full_contact_details ->> 'ContactID' as id_contact,
    reference,
    credit_note_number,
    credit_note_issued_at_utc,
    credit_note_issued_date_utc,
    credit_note_type,
    credit_note_currency_iso_4217,
    exchange_rate_to_gbp,
    total_amount_local_curr,
    (total_amount_local_curr * exchange_rate_to_gbp)::numeric(
        18, 4
    ) as total_amount_in_gbp,
    subtotal_local_curr,
    (subtotal_local_curr * exchange_rate_to_gbp)::numeric(18, 4) as subtotal_in_gbp,
    total_tax_local_curr,
    (total_tax_local_curr * exchange_rate_to_gbp)::numeric(18, 4) as total_tax_in_gbp,
    remaining_credit_local_curr,
    (remaining_credit_local_curr * exchange_rate_to_gbp)::numeric(
        18, 4
    ) as remaining_credit_in_gbp,
    applied_amount,
    credit_note_status,
    full_contact_details,
    credit_note_due_date,
    line_items,
    date_string,
    due_date_string,
    allocations,
    has_been_sent_to_contact,
    has_attachments,
    updated_at_utc,
    id_branding_theme,
    was_fully_paid_on_date_utc,
    line_amount_tax_inclusiveness,
    updated_date_utc,
    case
        when credit_note_number ~ '^CN-20\d{2}-.*' and credit_note_type = 'ACCRECCREDIT'
        then true
        else false
    end as is_credit_note_posted_in_hyperline,
    dwh_extracted_at_utc
from stg_xero__credit_notes
