<?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="SR-1033_subaccounts_relationships_update_1:1" author="yostapyuk" run-on-change="true">
        <precondition>
            <sqlquery>
                <![CDATA[
                    SELECT DISTINCT ORCHARD_OBJ_ID AS SUBACCOUNT_ID, SERVICE, TERRITORY, POLICY
                    FROM FACTS.PROD.HAS_FINGERPRINT_RULE
                    WHERE ORCHARD_OBJ_TYPE = 'SubAccount' AND CONTAINS(CREATED_BY, '/')
                    ORDER BY ORCHARD_OBJ_ID, SERVICE, TERRITORY, POLICY
                ]]>
            </sqlquery>
        </precondition>
        <cypherquery>
            <![CDATA[
                WITH event, {
                    OrchAdminProfile:    '1',
                    AbacusProfile:       '2',
                    Account360Profile:   '3',
                    ArtistProfile:       '4',
                    AudienceProfile:     '5',
                    CollaboratorsProfile:'6',
                    ContentProfile:      '7',
                    DistributionProfile: '8',
                    DocumentsProfile:    '9',
                    InsightsProfile:     '10',
                    LabelProfile:        '11',
                    MoneyhubProfile:     '12',
                    PodcastProfile:      '13',
                    PublishingProfile:   '14',
                    SettingsProfile:     '15',
                    SongwhipProfile:     '16'
                } AS profileTypes
                MATCH (sa:SubAccount {id: toInteger(event.SUBACCOUNT_ID)})-[hfr:HAS_FINGERPRINT_RULE]->(fr:FingerprintRule)
                WHERE hfr.createdBy CONTAINS '/'
                    AND fr.territory = event.TERRITORY AND fr.service = event.SERVICE AND fr.policy = event.POLICY
                SET
                    hfr.createdBy = split(hfr.createdBy, '/')[-2] + '_' + profileTypes[split(hfr.createdBy, '/')[-1]],
                    hfr.lastModifiedBy = CASE
                         WHEN hfr.lastModifiedBy CONTAINS '/' THEN split(hfr.lastModifiedBy, '/')[-2] + '_' + profileTypes[split(hfr.lastModifiedBy, '/')[-1]]
                         ELSE hfr.lastModifiedBy
                    END
            ]]>
        </cypherquery>
    </changeset>
</changelog>

