## Membership type ``` with $selectedCommunityId as selectedCommunityId, $name as name, $description as description with name, selectedCommunityId, replace(description, "'", '') as cleanDescription with name, selectedCommunityId, replace(cleanDescription, "'", '') as cleanDescription create (type:_Community:_Element:_UserDefined) set type._displayName = name set type._description = cleanDescription set type._communityId = selectedCommunityId set type._chainverseId = apoc.create.uuid() return count(type) as created ``` ``` match (community:_Main {_communityId: $selectedCommunityId}) match (type:_UserDefined {_communityId: $communityId}) with community, type merge (community)-[r:_HAS_MEMBERSHIP_TYPE]->(type) return count(r) as created ``` ## ingest query - wallets ``` WITH datetime(apoc.date.toISO8601(apoc.date.currentTimestamp(), 'ms')) as timestmap LOAD CSV WITH HEADERS FROM '$file' AS row MERGE (w:Wallet {address: row.address}) ON CREATE SET w.uuid = apoc.create.uuid(), w.createdDt = timestamp, w.lastUpdateDt = timestamp ON MATCH set w.lastUpdateDt = timestamp() RETURN count(distinct(w)) as count ``` ## ingest query - wallets ``` with $addresses as addresses, $name as name, $selectedCommunityId as selectedCommunityId match (type:_Community:_Element:_UserDefined) where (type._displayName = $name and type._communityId = selectedCommunityId) with type call apoc.periodic.commit(' match (w:Wallet) where w.address in addresses and not (w)-[:_HAS_MEMBERSHIP_TYPE]->(type) with w, type limit 10000 merge (w)-[:_HAS_MEMBERSHIP_TYPE]->(type) return count(distinct(*) as count ') ```