--liquibase formatted cypher --changeset yostapyuk:SR-1265-create_abacus_profile UNWIND [ 'd08d828a-38fd-4fc2-b56b-f16ff4935ed7', // rshield@sonymusic-pde.com '05e572f0-83c9-4885-8274-e766b99d158e', // jorge.bertran@sonymusic-pde.com '64a60ed3-f9e0-40c2-8113-059884b08d8b', // nils.littmann@sonymusic-pde.com 'c27d8eaa-91f0-4829-8894-d648ee7a16e1', // alberto.montoya@sonymusic-pde.com '6fc88f37-066b-4e35-adf5-8e9068ba225c' // yostapyuk@sonymusic-pde.com ] AS identity_id MATCH (i:Identity {id: identity_id}) OPTIONAL MATCH (i)-[:HAS_PROFILE]->(existing:Profile {profileType: 'AbacusProfile'}) WITH i, existing WHERE existing IS NULL WITH collect(i) AS newIdentities WHERE size(newIdentities) > 0 OPTIONAL MATCH (p:Profile) WITH newIdentities, COALESCE(max(p.profileId), 0) AS maxId MERGE (increment:IncrementId {nodeName: 'Profile'}) SET increment.id = maxId + size(newIdentities) + 1 WITH newIdentities, maxId MATCH (v:Vendor {id: "*"}) UNWIND range(0, size(newIdentities) - 1) AS idx WITH newIdentities[idx] AS i, maxId + idx + 1 AS newProfileId, v CREATE (p:Profile { profileId: newProfileId, profileType: 'AbacusProfile', profileName: i.name, uuid: apoc.create.uuid(), roles: ['administrator'], fullCatalogAccess: true, brand: 'orchard', createdAt: datetime(), lastModifiedAt: datetime(), createdBy: 'database/SR-1265-create-abacus-profile', lastModifiedBy: 'database/SR-1265-create-abacus-profile' }) MERGE (i)-[:HAS_PROFILE]->(p) MERGE (p)-[:HAS_ACCESS_TO]->(v) RETURN i,p;