import { drizzle } from "drizzle-orm/postgres-js"; import postgres from "postgres"; import * as schema from "./schema"; // Compte applicatif à privilèges minimaux (toveli_app), connexion locale uniquement (DATABASE_URL jamais exposée au client). declare global { var __toveliSql: ReturnType | undefined; } function sqlClient() { const url = process.env.DATABASE_URL; if (!url) throw new Error("DATABASE_URL manquante"); if (!globalThis.__toveliSql) globalThis.__toveliSql = postgres(url, { max: Number(process.env.PG_POOL_MAX ?? 8), idle_timeout: 30, connect_timeout: 10, prepare: true }); return globalThis.__toveliSql; } export function pgAvailable(): boolean { return !!process.env.DATABASE_URL; } export function db() { return drizzle(sqlClient(), { schema }); } export function rawSql() { return sqlClient(); } export { schema };