<?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-13579_update_meghan_trainor_label_participants:1" author="aoshomoji" neo4j-server="music-graph" run-always="true">
        <precondition>
            <sqlquery>
                <![CDATA[
                    SELECT DISTINCT lp.uuid AS label_participant_uuid,
                                    '6JL8zeS1NmiOftqZTRgdTz' AS correct_spotify_id
                    FROM facts.prod.global_participant gp
                    INNER JOIN facts.prod.global_participant_represents_label_participant rep ON rep.global_participant_id = gp.id
                    INNER JOIN facts.prod.label_participant lp ON lp.uuid = rep.label_participant_uuid
                    WHERE gp.id = 'f2edf1f1-b4fa-4f0b-b1d2-0bfa505a79be'
               ]]>
            </sqlquery>
        </precondition>
        <cypherquery>
            <![CDATA[
                MATCH (lp:LabelParticipant {uuid: event.LABEL_PARTICIPANT_UUID})
                    SET lp.spotifyId = event.CORRECT_SPOTIFY_ID,
                        lp.lastModifiedAt = datetime(),
                        lp.lastModifiedBy = 'database/IN-13579_update_meghan_trainor_label_participants:1'
            ]]>
        </cypherquery>
    </changeset>
    <changeset id="IN-13579_update_meghan_trainor_label_participants:2" author="aoshomoji" neo4j-server="music-graph" run-always="true">
        <precondition>
            <sqlquery>
                <![CDATA[
                    SELECT DISTINCT lp.uuid AS label_participant_uuid,
                                    gp.id AS old_global_participant_id
                    FROM facts.prod.global_participant gp
                    INNER JOIN facts.prod.global_participant_represents_label_participant rep ON rep.global_participant_id = gp.id
                    INNER JOIN facts.prod.label_participant lp ON lp.uuid = rep.label_participant_uuid
                    WHERE gp.id = 'f2edf1f1-b4fa-4f0b-b1d2-0bfa505a79be'
               ]]>
            </sqlquery>
        </precondition>
        <cypherquery>
            <![CDATA[
                MATCH (gp:GlobalParticipant {id: event.OLD_GLOBAL_PARTICIPANT_ID})-[oldRepresents:REPRESENTS]->(lp:LabelParticipant {uuid: event.LABEL_PARTICIPANT_UUID})
                MERGE (gp)-[deletedRepresents:DELETED_REPRESENTS]->(lp)
                    SET deletedRepresents.deletedAt = datetime(),
                        deletedRepresents.deletedBy = 'database/IN-13579_update_meghan_trainor_label_participants:2'
                DELETE oldRepresents
                WITH lp
                MATCH (gp2:GlobalParticipant {id: 'f9f20a30-10d0-4a47-a77f-e177d4cf2e54'})
                OPTIONAL MATCH (gp2)-[oldDeletedRepresents:DELETED_REPRESENTS]->(lp)
                DELETE oldDeletedRepresents
                WITH gp2, lp
                MERGE (gp2)-[newRepresents:REPRESENTS]->(lp)
                    SET newRepresents.createdAt = datetime(),
                        newRepresents.createdBy = 'database/IN-13579_update_meghan_trainor_label_participants:2'

            ]]>
        </cypherquery>
    </changeset>
</changelog>
