56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
import 'dotenv/config'
|
|
import { PrismaPg } from '@prisma/adapter-pg'
|
|
import { PrismaClient } from '../src/generated/prisma/client'
|
|
import { planSeeds } from './plans.seed-data'
|
|
|
|
const databaseUrl = process.env.DATABASE_URL
|
|
|
|
if (!databaseUrl) {
|
|
throw new Error('Missing DATABASE_URL in environment for plan reset.')
|
|
}
|
|
|
|
const adapter = new PrismaPg({
|
|
connectionString: databaseUrl,
|
|
})
|
|
|
|
const prisma = new PrismaClient({ adapter })
|
|
|
|
async function run() {
|
|
const complexesUsingPlans = await prisma.complex.count({
|
|
where: { planCode: { not: null } },
|
|
})
|
|
|
|
if (complexesUsingPlans > 0) {
|
|
throw new Error(
|
|
`No se puede resetear planes: hay ${complexesUsingPlans} complejos con plan asignado.`,
|
|
)
|
|
}
|
|
|
|
await prisma.$transaction(async (tx) => {
|
|
await tx.plan.deleteMany({})
|
|
|
|
for (const plan of planSeeds) {
|
|
await tx.plan.create({
|
|
data: {
|
|
code: plan.code,
|
|
name: plan.name,
|
|
price: plan.price,
|
|
rules: plan.rules,
|
|
},
|
|
})
|
|
}
|
|
})
|
|
|
|
console.log('Planes reseteados: BASIC, ADVANCED, ENTERPRISE')
|
|
}
|
|
|
|
run()
|
|
.then(async () => {
|
|
await prisma.$disconnect()
|
|
})
|
|
.catch(async (error) => {
|
|
console.error(error)
|
|
await prisma.$disconnect()
|
|
process.exit(1)
|
|
})
|