<?xml version="1.0" encoding="UTF-8"?>
<changelog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:/var/app/InputFileSchema.xsd">
    <changeset
         id="KDH-707_backfill_dim_artist:1"
         author="npatel"
         run-always="true"
         topic="cdc.snowflakeFacts.dim_artist"
         snowflake-account="orchard"
     >
    <!--  Rerun. Total count: 4655925 -->
    
        <precondition>
            <sqlquery>
                <![CDATA[
                    with dim_tables as (
                      SELECT
                            a.artistid AS ID,
                            a.artistid AS ARTIST_ID,
                            COALESCE(a.artistname, '') AS ARTIST_NAME,
                            COALESCE(sa.id, 0) AS SUBACCOUNT_ID,
                            COALESCE(sa.name, '') AS SUBACCOUNT_NAME,
                            a.labelid AS VENDOR_ID,
                            COALESCE(v.name, '') AS VENDOR_NAME,
                            v.uuid AS VENDOR_UUID,
                            IFF(sa.id IS NOT NULL AND sa.id != 0, sa.UUID, NULL) AS SUBACCOUNT_UUID,
                            cbhv.COMPANY_BRAND_UUID AS COMPANY_BRAND_UUID,
                            cbpc.PARENT_COMPANY_UUID AS PARENT_COMPANY_UUID
                      FROM FACTS.QA.DIM_ARTIST a
                      INNER JOIN FACTS.QA.VENDOR v ON a.labelid = v.vendor_id
                      LEFT JOIN FACTS.QA.DIM_RELEASE r ON r.artistid = a.artistid
                      LEFT JOIN FACTS.QA.SUBACCOUNT sa ON sa.id = r.subaccountid
                      LEFT JOIN FACTS.QA.COMPANY_BRAND_HAS_LABEL_VENDOR cbhv ON v.VENDOR_ID = cbhv.VENDOR_ID
                      LEFT JOIN FACTS.QA.COMPANY_BRAND_BELONGS_TO_PARENT_COMPANY cbpc ON cbhv.COMPANY_BRAND_UUID = cbpc.COMPANY_BRAND_UUID
                      WHERE COALESCE(a.artistname, '') != ''
                      GROUP BY a.artistid, a.artistname, a.labelid, sa.id, sa.name, sa.UUID, v.name, v.uuid, cbhv.COMPANY_BRAND_UUID, cbpc.PARENT_COMPANY_UUID
                    )
                    select
                        ID as KEY,
                        object_construct(
                              'artist_id', ARTIST_ID,
                              'artist_name', ARTIST_NAME,
                              'vendor_id', VENDOR_ID,
                              'vendor_name', VENDOR_NAME,
                              'subaccount_id', SUBACCOUNT_ID,
                              'subaccount_name', SUBACCOUNT_NAME,
                              'vendorUUID', VENDOR_UUID,
                              'subaccountUUID', SUBACCOUNT_UUID,
                              'companyBrandUUID', COMPANY_BRAND_UUID,
                              'parentCompanyUUID', PARENT_COMPANY_UUID
                        ) AS VALUE
                    from dim_tables
                ]]>
            </sqlquery>
        </precondition>
    </changeset>
    
</changelog>
