import { ProjectGetPayload } from 'nexus-plugin-prisma/client' import { prismaClient as prisma } from '../../prismaClient' type ProjectWithSegments = ProjectGetPayload<{ select: { id: true segments: { select: { title: true } } } }> prisma.project .findMany({ include: { segments: true } }) .then(async (projects: ProjectWithSegments[]) => { console.log('projects.length', projects.length) for await (const project of projects) { if ( !project.segments.some( (segment) => segment.title?.toLowerCase() === 'owners' || segment.title?.toLowerCase()?.includes('co-owners') ) ) { console.log('Missing owners') await prisma.segment.create({ data: { title: 'Owners', project: { connect: { id: project.id, }, }, segmentFields: { create: [ { model: 'USER', comparison: 'EQUALS', path: 'residentType', value: 'owner', }, ], }, }, }) } if (!project.segments.some((segment) => segment.title?.toLowerCase() === 'tenants')) { console.log('Missing tenants') await prisma.segment.create({ data: { title: 'Tenants', project: { connect: { id: project.id, }, }, segmentFields: { create: [ { model: 'USER', comparison: 'EQUALS', path: 'residentType', value: 'tenant', }, ], }, }, }) } if ( !project.segments.some( (segment) => segment.title?.toLowerCase() === 'board members' || segment.title?.toLowerCase()?.includes('conseil') ) ) { console.log('Missing members') await prisma.segment.create({ data: { title: 'Board members', project: { connect: { id: project.id, }, }, segmentFields: { create: [ { model: 'USER', comparison: 'EQUALS', path: 'residentType', value: 'boardMember', }, ], }, }, }) } } })