import { PrismaPg } from "@prisma/adapter-pg"; import { PrismaClient } from "@/generated/prisma/client"; export type Db = PrismaClient; /** Transaktions-Client innerhalb von db.$transaction(async (tx) => …). */ export type Tx = Parameters[0]>[0]; const globalForPrisma = globalThis as unknown as { prisma?: PrismaClient }; function createClient(): PrismaClient { const connectionString = process.env.DATABASE_URL; if (!connectionString) throw new Error("DATABASE_URL ist nicht gesetzt."); const adapter = new PrismaPg({ connectionString, max: Number(process.env.DATABASE_POOL_SIZE ?? 10) }); return new PrismaClient({ adapter, log: ["error"] }); } /** Lazy, damit der Build (ohne Datenbank) Module importieren kann. */ export function getDb(): PrismaClient { if (!globalForPrisma.prisma) globalForPrisma.prisma = createClient(); return globalForPrisma.prisma; } export const CAMP_ID = "modelcamp-2027";