<?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-708_backfill_dim_catalog:1"
         author="npatel"
         run-always="true"
         topic="cdc.snowflakeFacts.dim_catalog"
         snowflake-account="orchard"
     >
    <!--  Rerun. Total count: 4679937 -->
    
        <precondition>
            <sqlquery>
                <![CDATA[
                    with dim_tables as (
                        SELECT
                            dp.projectid AS ID,
                            dp.projectid AS CATALOG_ID,
                            COALESCE(dp.projectname, '') AS CATALOG_NAME,
                            COALESCE(dp.projectcode, '') AS VENDOR_CATALOG_NUMBER,
                            COALESCE(sa.id, 0) AS SUBACCOUNT_ID,
                            COALESCE(sa.name, '') AS SUBACCOUNT_NAME,
                            dp.labelid AS VENDOR_ID,
                            COALESCE(v.name, '') AS VENDOR_NAME,
                            COALESCE(a.artistname, '') AS ARTIST_NAME,
                            MIN(r.releaseid) AS UPC,
                            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_PROJECT dp
                          INNER JOIN FACTS.QA.VENDOR v ON v.vendor_id = dp.labelid
                          LEFT JOIN FACTS.QA.SUBACCOUNT sa ON sa.id = dp.subaccountid AND dp.subaccountid != 0
                          LEFT JOIN FACTS.QA.DIM_RELEASE r ON r.catalogid = dp.projectid
                          LEFT JOIN FACTS.QA.DIM_ARTIST a ON a.artistid = r.artistid
                          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(dp.projectname, '') != ''
                          GROUP BY dp.projectid, dp.projectname, dp.projectcode, dp.labelid, sa.id, sa.name, sa.UUID,
                                   v.name, v.uuid, a.artistname, cbhv.COMPANY_BRAND_UUID, cbpc.PARENT_COMPANY_UUID
                    )
                    select
                        ID as KEY,
                        object_construct(
                              'artist_name', ARTIST_NAME,
                              'catalog_id', CATALOG_ID,
                              'catalog_name', CATALOG_NAME,
                              'id', ID,
                              'vendor_id', VENDOR_ID,
                              'vendor_name', VENDOR_NAME,
                              'subaccount_id', SUBACCOUNT_ID,
                              'subaccount_name', SUBACCOUNT_NAME,
                              'upc', UPC,
                              'vendor_catalog_number', VENDOR_CATALOG_NUMBER,
                              'vendorUUID', VENDOR_UUID,
                              'subaccountUUID', SUBACCOUNT_UUID,
                              'companyBrandUUID', COMPANY_BRAND_UUID,
                              'parentCompanyUUID', PARENT_COMPANY_UUID
                        ) AS VALUE
                    from dim_tables
                ]]>
            </sqlquery>
        </precondition>
    </changeset>
    
</changelog>
