58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
|
|
import { PrismaClient } from '@prisma/client'
|
||
|
|
|
||
|
|
const prisma = new PrismaClient()
|
||
|
|
|
||
|
|
async function cleanup() {
|
||
|
|
console.log('Cleaning up dummy data...\n')
|
||
|
|
|
||
|
|
// Find and delete the dummy round
|
||
|
|
const dummyRound = await prisma.round.findFirst({
|
||
|
|
where: { slug: 'round-1-2026' },
|
||
|
|
include: { projects: true }
|
||
|
|
})
|
||
|
|
|
||
|
|
if (dummyRound) {
|
||
|
|
console.log(`Found dummy round: ${dummyRound.name}`)
|
||
|
|
console.log(`Projects in round: ${dummyRound.projects.length}`)
|
||
|
|
|
||
|
|
// Get project IDs to delete
|
||
|
|
const projectIds = dummyRound.projects.map(p => p.id)
|
||
|
|
|
||
|
|
// Delete team members for these projects
|
||
|
|
if (projectIds.length > 0) {
|
||
|
|
const teamDeleted = await prisma.teamMember.deleteMany({
|
||
|
|
where: { projectId: { in: projectIds } }
|
||
|
|
})
|
||
|
|
console.log(`Deleted ${teamDeleted.count} team members`)
|
||
|
|
|
||
|
|
// Disconnect projects from round first
|
||
|
|
await prisma.round.update({
|
||
|
|
where: { id: dummyRound.id },
|
||
|
|
data: { projects: { disconnect: projectIds.map(id => ({ id })) } }
|
||
|
|
})
|
||
|
|
|
||
|
|
// Delete the projects
|
||
|
|
const projDeleted = await prisma.project.deleteMany({
|
||
|
|
where: { id: { in: projectIds } }
|
||
|
|
})
|
||
|
|
console.log(`Deleted ${projDeleted.count} dummy projects`)
|
||
|
|
}
|
||
|
|
|
||
|
|
// Delete the round
|
||
|
|
await prisma.round.delete({ where: { id: dummyRound.id } })
|
||
|
|
console.log('Deleted dummy round')
|
||
|
|
} else {
|
||
|
|
console.log('No dummy round found')
|
||
|
|
}
|
||
|
|
|
||
|
|
console.log('\nCleanup complete!')
|
||
|
|
}
|
||
|
|
|
||
|
|
cleanup()
|
||
|
|
.then(() => prisma.$disconnect())
|
||
|
|
.catch(async (e) => {
|
||
|
|
console.error(e)
|
||
|
|
await prisma.$disconnect()
|
||
|
|
process.exit(1)
|
||
|
|
})
|