import { PrismaClient } from "@prisma/client"; import { PrismaBetterSqlite3 } from "@prisma/adapter-better-sqlite3"; import { PrismaLibSql } from "@prisma/adapter-libsql"; // Prisma 7 requires a driver adapter for SQLite connections. // Uses Turso (cloud SQLite) when TURSO_DATABASE_URL is set, otherwise local file. function createPrisma() { if (process.env.TURSO_DATABASE_URL) { const url = process.env.TURSO_DATABASE_URL.replace(/^libsql:\/\//, "https://"); const adapter = new PrismaLibSql({ url, authToken: process.env.TURSO_AUTH_TOKEN }); return new PrismaClient({ adapter } as ConstructorParameters[0]); } const url = process.env.DATABASE_URL || "file:./leadflow.db"; const adapter = new PrismaBetterSqlite3({ url }); return new PrismaClient({ adapter } as ConstructorParameters[0]); } const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined; }; export const prisma = globalForPrisma.prisma ?? createPrisma(); if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;