import { PrismaClient } from "@prisma/client";
import { createDemoPrisma } from "@/lib/demo-prisma";

/**
 * cPanel mockup defaults to file demo data (no native SQLite engine).
 * Locally, set USE_DEMO_DATA=0 to use Prisma + prisma/dev.db.
 */
const useDemo =
  process.env.USE_DEMO_DATA === "1" ||
  (process.env.USE_DEMO_DATA !== "0" && process.env.NODE_ENV === "production");

const globalForPrisma = globalThis as unknown as {
  prisma?: PrismaClient;
  demoPrisma?: ReturnType<typeof createDemoPrisma>;
};

function createClient() {
  if (useDemo) {
    console.log("[elbeegems] Using file demo data (USE_DEMO_DATA)");
    return createDemoPrisma();
  }

  return new PrismaClient({
    log: process.env.NODE_ENV === "development" ? ["error", "warn"] : ["error"],
  });
}

export const prisma = (globalForPrisma.demoPrisma ||
  globalForPrisma.prisma ||
  createClient()) as PrismaClient;

if (process.env.NODE_ENV !== "production") {
  if (useDemo) globalForPrisma.demoPrisma = prisma as never;
  else globalForPrisma.prisma = prisma;
}
