<?xml version="1.0" encoding="UTF-8"?>
<changelog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.liquigraph.org/schema/1.0/liquigraph.xsd">
    <changeset id="ARTARCH-430_backfill_missing_gsr:1" author="gaguirre" run-on-change="true">
        <query>
            <![CDATA[
                CALL apoc.periodic.iterate(
                    "
                        MATCH (lsr:LabelSoundRecording)<-[:IS_PLACEMENT_OF]-(t:Track:Orchard)<-[:INCLUDES]-(p:Product:Orchard)
                        WHERE p.releaseStatus = 'in_content'
                        AND COALESCE(lsr.name, '') <> ''
                        AND (date() > p.releaseDate OR date() > t.sourceModifiedAt)
                        RETURN lsr
                    ",
                    "
                       MERGE (n:GlobalSoundRecording {isrc: lsr.isrc})
                            ON CREATE SET
                                n.id = apoc.create.uuid(),
                                n.createdAt = datetime(),
                                n.name = lsr.name
                            ON MATCH SET
                                n.name = CASE WHEN COALESCE(n.name, '') = '' THEN lsr.name ELSE n.name END,
                                n.modifiedAt = datetime()
                        MERGE (n)-[:REPRESENTS]->(lsr)
                    ",
                    {batchSize:1000, iterateList:true, parallel:true, concurrency: 5}
                );
            ]]>
        </query>
    </changeset>
</changelog>
