/**
 * اتصال یکتای Prisma به PostgreSQL (با درایور pg).
 * در حالت توسعه نمونه روی globalThis نگه داشته می‌شود تا با hot-reload اتصال‌های اضافه ساخته نشود.
 */
import "server-only";
import { PrismaPg } from "@prisma/adapter-pg";
import { PrismaClient } from "@/generated/prisma/client";

function createClient() {
  const connectionString = process.env.DATABASE_URL;
  if (!connectionString) throw new Error("DATABASE_URL تنظیم نشده است (فایل .env را ببینید)");
  return new PrismaClient({ adapter: new PrismaPg({ connectionString }) });
}

const globalForPrisma = globalThis as unknown as { prisma?: PrismaClient };

export const db = globalForPrisma.prisma ?? createClient();
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = db;
