<?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">
    <changeset id="ARTARCH-insert_delete_track_writer_drift-bis:1" author="gaguirre" run-on-change="true">
        <query>
            <![CDATA[
                MATCH (tw:TrackWriter)
                WHERE tw.id in [66688509,66700953,66698249,66692032,66700940,66707444,66711403,66706242,66711402,66702852,66700961,66723947,66700951,66694731,66700925,66700895,66711409,66723933,66694164,66707437,66700955,66713176,66700965,66700956,66709723,66694698,66698594,66711198,66700930,66694739,66687626,66700883,66707438,66700972,66700979,66700880,66357427,66705459,66688517,66698542,66707257,66694740,66705037,66698645,66711197,66700969,66698590,66706360,66704497,66690741,66687629,66700941,66700879,66722619,66687630,66686725,66707543,66688515,66688513,66716994,66708913,66700890,66687624,66707552,66723934,66711647,66711401]
                DETACH DELETE tw
            ]]>
        </query>
    </changeset>
    <changeset id="ARTARCH-insert_delete_track_writer_drift-bis:2" author="gaguirre" run-on-change="true">
        <query>
            <![CDATA[
                CALL apoc.periodic.iterate(
                    "
                        WITH 'mysql_artrelations' as url_alias,
                        '
                            SELECT
                                tw.track_writer_id,
                                tw.unique_track_id,
                                tw.writer_name
                            FROM track_writer tw
                            WHERE tw.track_writer_id IN (35667846,66696564,6391431,66723606,66696796,66696676,33333193,66696710,66696805,66696638,66719929,66696652,66696699,66696633,33333198,35667682,27368207,66719788,6391432,66696618,66696716,1900654,66696675,66725113,66718244,66696579,66696673,66696631,2049030,66696834,57082974,66696619,66696584,66696783,66696642,66696647,66696795,66696632,66696672,33333175,33333201,20082902,66696711,66696613,27368210,27368205,1900648,1900652,66696793,33333128,66696818,2049033,66696665,66696572,66696590,66696629,33169226,66718243,66696625,56867295,66696688,33333194,1968820,66696803,66696581,66696721,34054390,66696812,66696656,66696659,66696636,66696801,66697044,66696788,66717108,6391436,6391453,66696623,66696560,66696602,33333179,1900651,33169219,66696570,66696641,66696585,38313767,6391454,66696661,66644751,33169216,27368204,30786423,66644759,6391451,66696569,33333189,66696651,66696558,33333207,35667685,66696712,66696709,35667678,66722020,1900657,66696705,66696571,66696680,66696605,6391438,66696591,66696597,35667740,35667843,66696702,35667844,66696693,66696707,66696662,66696660,66696683,66696648,66696704,66696561,20082901,66696695,35667840,66696682,66696616,66696608,66696568,66696781,35667728,66696815,66696708,56760406,30786422,66696612,57082976,66696614,1900650,66696587,66696634,66696806,66696687,66696610,66696606,33169223,6391447,66644724,66644739,66696654,66718036,66724130,66696713,66696791,66696622,34054389,30786425,66696811,66696601,66696831,33169217,6391439,66696809,66696583,66696715,66721971,6391433,66696596,66696588,6391445,6391452,66696650,33169220,6391456,66696679,66696663,6391440,66696628,27368202,35667679,6391435,66697043,33169215,66696717,66696624,66696681,66696697,66696696,33333131,66696653,66644752,2049032,66696657,66696728,35667750,66719928,66696816,66696639,66696691,6391455,56760400,66696617,66696799,66696671,66499526,66696577,38313763,66696732,66696574,66696643,66696706,33333147,66696701,66696668,66696698,66696726,33169229,66717768,66696593,66696600,66696718,33333184,66696644,66696649,1968821,33333148,66696667,66696782,27368209,20082903,66696621,33169224,66644754,66696630,66696645,1900656,66719907,66644731,66696677,66696720,66696808,1900649,66696595,66696615,57082975,66644760,6391434,66696646,66696566,66696586,66696635,6391448,2049031,35667848,66696562,66696694,27368200,66696804,66696784,66644738,1900655,6391446,66696573,66696575,66696689,66696658,66696692,27368208,33333200,33333185,30819971,66696666,66696576,38313759,35667684,66696589,66696620,35667683,33333176,66644746,66696719,66696627,35667680,66722887,34054388,66696819,66696790,66696604,66696789,66696599,66696678,6391444,66696807,33169228,6391442,66696700,20082904,66718241,66499525,66696810,66696684,66696582,66696655,66696813,6391450,21036171,66644729,66696797,66696685,66696563,33169218,1900658,56760401,66696780,66696674,66696814,66696611,35667842,66725112,66696592,66696557,35667823,38313758,66696603,33169222,66696594,33169225,66722801,66696792,66696640,27368211,66696798,27368206,33169227,6391430,6391449,66696565,66696802,66696626,66696664,66696690,66696727,66696686,65607783,33333199,66696817,66696559,66696670,66628332,66644734,66696833,38313766,66696567,66724360,56760405,6391437,66696669,66696607,35667841,66696800,66696578,27368201,66725114,66696787,66696786,66696637,1900659,57082973,1900653,66696714,66696794,6391441,35667845,6391443,66696703,33169221,66696609,66718250,66696832,66717597,66719633,66719932,30819970,27368203,33333177,66696580,66697042,33333129,66696785,35667847)
                        ' as sql
                        CALL apoc.load.jdbc(url_alias, sql)
                        YIELD row
                        RETURN row
                    ",
                    "
                        WITH collect(row) AS rows
                        UNWIND range(0, size(rows) - 1) AS rowNumber
                        WITH rowNumber, size(rows) AS totalRows, rows[rowNumber] AS row
                        MERGE (tw:TrackWriter {id: toInteger(row.track_writer_id)})
                            ON CREATE SET
                                tw.uniqueTrackId = toInteger(row.unique_track_id),
                                tw.writerName = row.writer_name,
                                tw.createdAt = datetime(),
                                tw.createdBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2',
                                tw.lastModifiedAt = datetime(),
                                tw.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                            ON MATCH SET
                                tw.uniqueTrackId = toInteger(row.unique_track_id),
                                tw.writerName = row.writer_name,
                                tw.lastModifiedAt = datetime(),
                                tw.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                        WITH tw, rowNumber, totalRows
                        MATCH (t:Track:Orchard {id: tw.uniqueTrackId})
                        MATCH (p:Product:Orchard)-[:INCLUDES]->(t)
                        MATCH (pr:Project)-[:INCLUDES]->(p)
                        WHERE EXISTS(pr.subaccountId)
                        MERGE (t)-[hsa:HAS_SOURCE_ARTIST]->(tw)
                            ON CREATE SET
                                hsa.createdAt = datetime(),
                                hsa.createdBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2',
                                hsa.lastModifiedAt = datetime(),
                                hsa.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                        MERGE (i:IncrementId {nodeName: 'LabelParticipant'})
                            ON CREATE SET i.id = 1
                            ON MATCH SET i.id = i.id + 1
                        MERGE (
                            lp:LabelParticipant:Orchard {
                                normalizedName: toLower(trim(apoc.text.regreplace(tw.writerName, '[ ]+', ''))),
                                vendorId: pr.vendorId,
                                subaccountId: pr.subaccountId
                            }
                        )
                            ON CREATE SET
                                lp.id = i.id - totalRows + rowNumber + 1,
                                lp.uuid = apoc.create.uuid(),
                                lp.createdAt = datetime(),
                                lp.createdBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2',
                                lp.lastModifiedAt = datetime(),
                                lp.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2',
                                lp.name = trim(apoc.text.regreplace(tw.writerName, '[ ]{2,}', ' '))
                            ON MATCH SET
                                lp.lastModifiedAt = datetime(),
                                lp.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                        MERGE (lp)-[participation:PARTICIPATED_IN {participated_as: 'track_writer'}]->(t)
                            ON CREATE SET
                                participation.createdAt = datetime(),
                                participation.createdBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2',
                                participation.lastModifiedAt = datetime(),
                                participation.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                            ON MATCH SET
                                participation.lastModifiedAt = datetime(),
                                participation.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                        MERGE (lp)-[cf:CREATED_FROM]->(tw)
                            ON CREATE SET
                                cf.createdAt = datetime(),
                                cf.createdBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2',
                                cf.lastModifiedAt = datetime(),
                                cf.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                        MERGE (v:Vendor:Label:Orchard {id: lp.vendorId})
                            ON CREATE SET
                                v.createdAt = datetime(),
                                v.createdBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2',
                                v.lastModifiedAt = datetime(),
                                v.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                        MERGE (v)-[hlp:HAS_LABEL_PARTICIPANT]->(lp)
                            ON CREATE SET
                                hlp.createdAt = datetime(),
                                hlp.createdBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2',
                                hlp.lastModifiedAt = datetime(),
                                hlp.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                        FOREACH (hasSubAccount IN
                                        CASE WHEN not (lp.subaccountId = 0) THEN [1] ELSE [] END |
                            MERGE (sa:SubAccount:Subaccount:Label {id: lp.subaccountId})
                                ON CREATE SET
                                    sa.createdAt = datetime(),
                                    sa.createdBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2',
                                    sa.lastModifiedAt = datetime(),
                                    sa.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                            MERGE (sa)-[shlp:HAS_LABEL_PARTICIPANT]->(lp)
                                ON CREATE SET
                                    shlp.createdAt = datetime(),
                                    shlp.createdBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2',
                                    shlp.lastModifiedAt = datetime(),
                                    shlp.lastModifiedBy = 'database/ARTARCH-insert_delete_track_writer_drift-bis:2'
                        )
                    ",
                    {batchSize:50, iterateList:true, parallel:false}
                );
            ]]>
        </query>
    </changeset>
</changelog>
