with
    stg_resolutions__incidents as (
        select * from {{ ref("stg_resolutions__incidents") }}
    ),
    logs_timeline as (
        select
            i.id_incident,
            (
                select (comment ->> 'CreatedDate')::timestamp
                from jsonb_array_elements(i.comment_logs::jsonb) comment
                order by (comment ->> 'CreatedDate')::timestamp
                limit 1
            ) as first_comment_date,
            (
                select (comment ->> 'CreatedDate')::timestamp
                from jsonb_array_elements(i.comment_logs::jsonb) comment
                order by (comment ->> 'CreatedDate')::timestamp desc
                limit 1
            ) as last_comment_date,
            (
                select count(*) from jsonb_array_elements(i.comment_logs::jsonb) comment
            ) as comment_count,
            (
                select count(*)
                from jsonb_array_elements(i.damage_report_items::jsonb) items
            ) as number_damaged_items,

        from stg_resolutions__incidents i
    ),
    damage_reported_items as (
        select
            i.id_incident,
            jsonb_array_elements(i.documents -> 'DamageReport' -> 'Items') as item
        from stg_resolutions__incidents i
    )
    damage_report_amounts as (
        select
            id_incident,
            sum((corrective_measures ->> 'Amount')::numeric) as asked_repair_amount,
            sum(
                (corrective_measures ->> 'SettlementAmount')::numeric
            ) as accepted_amount,
        from
            parsed_data,
            jsonb_array_elements(item -> 'CorrectiveMeasures') as corrective_measures
        group by id_incident
    )

select
    -- Basic Incident Details
    i.id_incident,
    id_user,
    id_verification,
    current_status_name,
    is_submission_complete,
    current_agent_name,
    read_only_for_customers,
    status_history_logs,
    document_version,
    task_execution_logs,
    created_at_date,
    created_date_date,
    updated_at_date,
    updated_date_date,

    -- Resolution Details    
    first_comment_date,
    last_comment_date,

    -- Host Details
    id_user_host,
    host_user_claim_logs,
    host_account_name,

    -- Host Contact Details
    host_email,
    host_last_name,
    host_first_name,
    host_phone_code,
    host_phone_number,
    host_phone_number_with_code,

    -- Guest Details
    id_user_guest,
    guest_email,
    guest_last_name,
    guest_first_name,
    guest_phone_code,
    guest_phone_number,
    guest_phone_number_with_code,

    -- Guest Deposit Details
    is_guest_deposit_retained,
    is_guest_deposit_collected,
    deposit_retained_amount_in_txn_currency,
    deposit_retained_currency,

    -- Guest Involvements
    has_guest_contributed_to_cost,
    has_host_taken_preventative_steps,
    guest_contribution_amount_in_txn_currency,
    guest_contribution_currency,
    guest_contacted_about_damage,
    guest_contacted_evidence_files,
    guest_preventative_steps_details,

    -- Accommodation Details
    id_accommodation,
    accommodation_url,
    accommodation_name,
    are_pets_allowed,

    -- Booking Details
    check_in_at_utc,
    check_in_date_utc,
    check_out_at_utc,
    check_out_date_utc,
    id_booking,
    booking_status,
    id_reservation,
    booking_details,
    number_of_guests,
    booking_services,
    booking_protection,
    booking_platform_used,
    booking_platform_reference,

    -- Damage Report
    before_damage_evidence,
    original_invoice_evidence,
    damage_incident_details,
    has_confirmed_loss,
    damage_report_items,

    -- Calculator
    protection_name,
    was_overriden,
    waiver_or_deposit_name,
    guest_verification_status,
    lower_protection_limit_usd,
    upper_protection_limit_usd,
    calculated_payout_amount_in_txn_currency,
    calculated_payout_currency,
    calculated_payout_amount_in_usd,
    calculated_guest_charge_amount_in_txn_currency,
    calculated_guest_charge_currency,
    calculated_guest_charge_amount_in_usd

from stg_resolutions__incidents i
left join comments_timeline ct on i.id_incident = ct.id_incident
