// src/lib/prisma.ts // ✅ CORRECCIÓN: Validación de DATABASE_URL + configuración del pool de conexiones import { PrismaClient } from '@prisma/client'; import { Pool } from 'pg'; import { PrismaPg } from '@prisma/adapter-pg'; const globalForPrisma = global as unknown as { prisma: PrismaClient }; const connectionString = process.env.DATABASE_URL; if (!connectionString) { throw new Error( "❌ DATABASE_URL is not defined. " + "Make sure it's set in your .env file or Docker environment variables. " + "Example: DATABASE_URL=postgresql://user:password@db:5432/flux" ); } const pool = new Pool({ connectionString, max: 10, // Máximo de conexiones simultáneas idleTimeoutMillis: 30000, // Cerrar conexiones inactivas después de 30s connectionTimeoutMillis: 5000, // Timeout al intentar conectar }); const adapter = new PrismaPg(pool as any); export const prisma = globalForPrisma.prisma || new PrismaClient({ adapter }); if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;