<?xml version="1.0" encoding="UTF-8"?>
<changelog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://www.liquigraph.org/schema/1.0/liquigraph.xsd">

    <!-- Set pubWriterID on Agreement nodes where this value is missing -->
    <changeset id="PUB-842_cleanup_agreement_nodes:1" author="jmarais" run-always="true">
        <query>
            <![CDATA[
                MATCH (sw:PublishingSongWriter)-[:HAS_AGREEMENT]-(a:PublishingAgreement)
                WHERE a.pubWriterID IS NULL
                SET
                    a.pubWriterID = sw.pubWriterID,
                    a.lastModifiedAt = datetime(),
                    a.lastModifiedBy = 'database/PUB-842_cleanup_agreement_nodes'
                RETURN sw
            ]]>
        </query>
    </changeset>

    <!-- Set labelUUID on Agreement nodes where this value is missing -->
    <changeset id="PUB-842_cleanup_agreement_nodes:2" author="jmarais" run-always="true">
        <query>
            <![CDATA[
                MATCH (v:Vendor)-[:HAS_SIGNED_WRITER]-(sw:PublishingSongWriter)-[:HAS_AGREEMENT]-(a:PublishingAgreement)
                WHERE a.labelUUID IS NULL
                SET
                    a.labelUUID = v.uuid,
                    a.lastModifiedAt = datetime(),
                    a.lastModifiedBy = 'database/PUB-842_cleanup_agreement_nodes'
                RETURN sw
            ]]>
        </query>
    </changeset>

    <!-- Set pubPublisherID on Agreement nodes where this value is missing -->
    <changeset id="PUB-842_cleanup_agreement_nodes:3" author="jmarais" run-always="true">
        <query>
            <![CDATA[
                MATCH (p:PublishingPublisher)-[:HAS_AGREEMENT]-(a:PublishingAgreement)
                WHERE a.pubPublisherID IS NULL
                SET
                    a.pubPublisherID = p.pubPublisherID,
                    a.lastModifiedAt = datetime(),
                    a.lastModifiedBy = 'database/PUB-842_cleanup_agreement_nodes'
                RETURN a
            ]]>
        </query>
    </changeset>

    <!-- Set pubPublisherID to 'NONE' on Agreement node with no publisher where this value is missing -->
    <changeset id="PUB-842_cleanup_agreement_nodes:4" author="jmarais" run-always="true">
        <query>
            <![CDATA[
                MATCH (a:PublishingAgreement)
                WHERE NOT (:PublishingPublisher)-[:HAS_AGREEMENT]-(a)
                AND a.pubPublisherID IS NULL
                SET
                    a.pubPublisherID = 'NONE',
                    a.lastModifiedAt = datetime(),
                    a.lastModifiedBy = 'database/PUB-842_cleanup_agreement_nodes'
                RETURN a
            ]]>
        </query>
    </changeset>
</changelog>
