<?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="IN-12927_cleanup_public_track_image_urls:1" author="aoshomoji" run-always="true">
        <precondition>
            <sqlquery>
                <![CDATA[
                    SELECT pt.spotify_id,
                           CASE WHEN s.artwork_url NOT ILIKE '%mp3-preview%' THEN s.artwork_url END AS new_image_url
                    FROM facts.prod.public_track pt
                    LEFT JOIN chartmetric.raw_data.spotify s ON s.spotify_track_id = pt.spotify_id
                    WHERE pt.image_url ILIKE '%mp3-preview%'
               ]]>
            </sqlquery>
        </precondition>
        <cypherquery>
            <![CDATA[
                MATCH (pt:PublicTrack:ChartmetricSpotify {spotifyId: event.SPOTIFY_ID})
                    SET pt.imageUrl = event.NEW_IMAGE_URL,
                        pt.lastModifiedAt = timestamp(),
                        pt.lastModifiedBy = 'database/IN-12927_cleanup_public_track_image_urls:1';
            ]]>
        </cypherquery>
    </changeset>
    <changeset id="IN-12927_cleanup_public_track_image_urls:2" author="aoshomoji" run-always="true">
        <precondition>
            <sqlquery>
                <![CDATA[
                    select psr.id,
                    MAX(COALESCE(CASE WHEN cmt.image_url NOT ILIKE '%mp3-preview%' THEN cmt.image_url END,
                                 CASE WHEN s.artwork_url NOT ILIKE '%mp3-preview%' THEN s.artwork_url END)) AS new_image_url
                    FROM facts.prod.public_sound_recording psr
                    LEFT JOIN chartmetric.raw_data.spotify s ON UPPER(s.isrc) = UPPER(psr.isrc)
                    LEFT JOIN chartmetric.raw_data.cm_track cmt ON UPPER(cmt.isrc) = UPPER(psr.isrc)
                    WHERE psr.image_url ILIKE '%mp3-preview%'
                    GROUP BY 1
               ]]>
            </sqlquery>
        </precondition>
        <cypherquery>
            <![CDATA[
                MATCH (psr:PublicSoundRecording {id: event.ID})
                    SET psr.imageUrl = event.NEW_IMAGE_URL,
                        psr.lastModifiedAt = timestamp(),
                        psr.lastModifiedBy = 'database/IN-12927_cleanup_public_track_image_urls:2';
            ]]>
        </cypherquery>
    </changeset>
    <changeset id="IN-12927_cleanup_public_track_image_urls:3" author="aoshomoji" run-always="true">
        <precondition>
            <sqlquery>
                <![CDATA[
                    select gsr.id,
                    MAX(COALESCE(CASE WHEN cmt.image_url NOT ILIKE '%mp3-preview%' THEN cmt.image_url END,
                                 CASE WHEN s.artwork_url NOT ILIKE '%mp3-preview%' THEN s.artwork_url END)) AS new_image_url
                    FROM facts.prod.global_sound_recording gsr
                    LEFT JOIN chartmetric.raw_data.spotify s ON UPPER(s.isrc) = UPPER(gsr.isrc)
                    LEFT JOIN chartmetric.raw_data.cm_track cmt ON UPPER(cmt.isrc) = UPPER(gsr.isrc)
                    WHERE gsr.image_url ILIKE '%mp3-preview%'
                    GROUP BY 1
               ]]>
            </sqlquery>
        </precondition>
        <cypherquery>
            <![CDATA[
                MATCH (gsr:GlobalSoundRecording {id: event.ID})
                    SET gsr.imageUrl = event.NEW_IMAGE_URL,
                        gsr.lastModifiedAt = timestamp(),
                        gsr.lastModifiedBy = 'database/IN-12927_cleanup_public_track_image_urls:3';
            ]]>
        </cypherquery>
    </changeset>
</changelog>
