import { drizzle } from "drizzle-orm/postgres-js";
import postgres from "postgres";

import * as schema from "./schema";

/**
 * The Drizzle database client (postgres.js driver), matching the house standard
 * used by the other projects. Replaces the old Prisma client (`lib/prisma.ts`).
 * A single connection is reused across hot reloads in dev.
 */
const connectionString =
  process.env.DATABASE_URL ??
  "postgresql://postgres:postgres@localhost:5432/moh_sass?schema=public";

const globalForDb = globalThis as unknown as {
  dbClient: ReturnType<typeof postgres> | undefined;
};

const client = globalForDb.dbClient ?? postgres(connectionString);

if (process.env.NODE_ENV !== "production") {
  globalForDb.dbClient = client;
}

export const db = drizzle(client, { schema });
export { schema };
