import { PrismaClient } from '@prisma/client' const prismaClientSingleton = () => { return new PrismaClient({ datasources: { db: { url: process.env.DATABASE_URL || 'postgresql://memento:memento@localhost:5432/memento', }, }, }) } /** Dev hot-reload can keep an old PrismaClient missing newly generated models. */ function needsFreshPrismaClient(client: PrismaClient | undefined): boolean { if (!client) return true return typeof (client as PrismaClient & { flashcard?: unknown }).flashcard === 'undefined' } declare const globalThis: { prismaGlobal: ReturnType; } & typeof global; let prisma = globalThis.prismaGlobal ?? prismaClientSingleton() if (process.env.NODE_ENV !== 'production') { if (needsFreshPrismaClient(globalThis.prismaGlobal)) { prisma = prismaClientSingleton() } globalThis.prismaGlobal = prisma const models = Object.keys(prisma).filter(k => !k.startsWith('_') && !k.startsWith('$')) console.log('[Prisma] Models loaded:', models.join(', ')) } export { prisma } export default prisma