--liquibase formatted cypher --changeset gmaroulis:NR-3015_update_monetize_rules_for_vendor runOnChange: true UNWIND [ "NL33X1900016", "NLE3T1400069", "NLE3T1400071", "NLE3T1400073", "NLE3T1400075", "NLE3T1400077", "NLE3T1400079", "NLE3T1400081", "NLE3T1400083", "NLE3T1400085", "NLE3T1400087", "NLE3T1400089", "NLE3T1400092", "NLE3T1400094", "NLE3T1400096", "NLE3T1400097", "NLE3T1900000", "NLE3T1400098", "NLE3T1900005", "NLE3T1900006", "NLE3T1900007", "NLE3T1900008", "NLE3T1900009", "NLE3T2000001", "NLE3T2000003", "NLE3T2000004", "NLE3T2000005", "NLEST2100001", "NLEST2100002", "NLEST2100003", "NLEST2100004" ] as isrc MATCH (sr: NrSoundRecording:NrOwnership)-[rel:HAS_OWNERSHIP_RULE_MONETIZE]-(s:NrOwnershipService) WHERE sr.isrc=isrc and rel.vendorId = 68250 and s.territory="WORLD" WITH sr, rel as oldRel OPTIONAL MATCH (sr)-[oldCarveoutRel:HAS_OWNERSHIP_RULE_CARVEOUT {vendorId: 68250}]-(se2:NrOwnershipService) WITH collect(distinct(se2.territory)) as carveouts, sr, oldRel MATCH (service:NrOwnershipService) WHERE service.territory <> "WORLD" AND NOT service.territory IN carveouts MERGE (sr)-[newRel:HAS_OWNERSHIP_RULE_MONETIZE {vendorId: oldRel.vendorId}]->(service) ON CREATE SET newRel.percentage = CASE WHEN service.territory = "US" THEN 100 WHEN service.territory = "CA" THEN 100 ELSE oldRel.percentage END, newRel.startDate = oldRel.startDate, newRel.endDate = oldRel.endDate, newRel.externalId = oldRel.externalId, newRel.id = randomUUID(), newRel.createdBy = 'NR-3015_update_monetize_rules_for_vendor', newRel.createdAt = timestamp(), newRel.lastModifiedBy = 'NR-3015_update_monetize_rules_for_vendor', newRel.lastModifiedAt = timestamp() ON MATCH SET newRel.percentage = CASE WHEN service.territory = "US" THEN 100.0 WHEN service.territory = "CA" THEN 100.0 ELSE oldRel.percentage END, newRel.startDate = oldRel.startDate, newRel.endDate = oldRel.endDate, newRel.externalId = oldRel.externalId, newRel.lastModifiedBy = 'NR-3015_update_monetize_rules_for_vendor', newRel.lastModifiedAt = timestamp() WITH sr OPTIONAL MATCH (sr)-[oldWorldRel:HAS_OWNERSHIP_RULE_MONETIZE {vendorId: 68250}]-(worldService:NrOwnershipService) WHERE worldService.territory = "WORLD" DELETE oldWorldRel;