<?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="WIZ-1786_retry_longtail:1"
     author="pdumoulin"
     run-always="true"
     topic="event.workflow.backfill.v2.assets">
        <precondition>
            <sqlquery>
                <![CDATA[
                WITH v1_release_ids AS (
                    SELECT *
                    FROM (
                        SELECT
                            r.upc,
                            r.RELEASE_ID,
                            r.DELETIONS,
                            count_if(al.ASSET_ID IS NOT NULL) = 0 AS missing_dddb,
                            count(DISTINCT(tr.ID)) > count(DISTINCT(au.TRACK_UNIQUE_ID)) AS missing_upload,
                            count(DISTINCT(tr.ID)) > count(DISTINCT(af.ASSET_UPLOAD_ID)) AS missing_flac,
                            count(DISTINCT(tr.ID)) AS num_tracks
                        FROM ORCHARD_APP_REPORTING_V2.ART_RELATIONS_PROD_ART_RELATIONS.RELEASES AS r
                        LEFT JOIN ORCHARD_APP_REPORTING_V2.REPORTSDD_DIRECT_DELIVERY.ASSET AS a 
                            ON r.UPC = a.UPC
                        LEFT JOIN ORCHARD_APP_REPORTING_V2.REPORTSDD_DIRECT_DELIVERY.ASSET_LOCATION AS al
                            ON al.ASSET_ID = a.ASSET_ID
                            AND al.status = 'Y'
                        LEFT JOIN ORCHARD_APP_REPORTING_V2.ART_RELATIONS_PROD_ART_RELATIONS.TRACK AS tr
                            ON tr.RELEASE_ID = r.RELEASE_ID
                            AND r.RELEASE_STATUS = 'in_content'
                            AND r.NOT_FOR_DISTRIBUTION IN ('N', 'EditoriallySuspectContent', 'NotforFurtherDistribution')
                            AND tr.TRACK_TYPE = 'music'
                            AND (r."VERSION" != 'Ringtone' OR r."VERSION" IS NULL)
                        LEFT JOIN ORCHARD_APP_REPORTING_V2.PROD_OWS_ASSETS_OWS_ASSETS.ASSET_UPLOAD AS au
                            ON au.TRACK_UNIQUE_ID = tr.ID
                            AND au.API_VERSION = 2
                            AND au.IS_CORRECTION = 0
                            AND au.DELETED = 0
                        LEFT JOIN ORCHARD_APP_REPORTING_V2.PROD_OWS_ASSETS_OWS_ASSETS.ASSET_FINAL AS af 
                            ON au.ID = af.ASSET_UPLOAD_ID
                            AND af.ASSET_TYPE = 'FLAC'
                        LEFT JOIN ORCHARD_APP_REPORTING_V2.ART_RELATIONS_PROD_ART_RELATIONS.PRODUCT_PHYSICAL AS pf
                            ON pf.RELEASE_ID = r.RELEASE_ID
                        WHERE 
                            pf.ID IS NULL
                        GROUP BY 1, 2, 3
                        HAVING 
                            (
                                missing_upload = TRUE
                                OR missing_flac = TRUE
                            )
                            AND num_tracks > 0
                            AND missing_dddb = FALSE
                    )
                )
                SELECT
                    CONCAT('releaseId:', v1_release_ids.release_id) AS KEY,
                    OBJECT_CONSTRUCT(
                        'product_id', TO_VARCHAR(v1_release_ids.release_id),
                        'suffix', 'retry-20231204'
                    ) AS VALUE
                FROM v1_release_ids
                ;
                ]]>
            </sqlquery>
        </precondition>
    </changeset>
</changelog>
