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); });