import { Pool } from "pg"; // Configuration de la base de données const dbConfig = { host: process.env.DB_HOST || "localhost", port: parseInt(process.env.DB_PORT || "5432"), database: process.env.DB_NAME || "peakskills", user: process.env.DB_USER || "peakskills_user", password: process.env.DB_PASSWORD || "peakskills_password", // ✅ AJOUT : Configuration optimisée du pool max: 20, // Connexions max min: 2, // Connexions min idleTimeoutMillis: 30000, // 30s connectionTimeoutMillis: 2000, // 2s acquireTimeoutMillis: 10000, // 10s // Optimisations supplémentaires allowExitOnIdle: true, maxUses: 7500, // Recycler les connexions après 7500 utilisations }; // Pool de connexions global let pool: Pool | null = null; export function getPool(): Pool { if (!pool) { pool = new Pool(dbConfig); pool.on("error", (err) => { console.error("Unexpected error on idle client", err); process.exit(-1); }); } return pool; } export async function closePool(): Promise { if (pool) { await pool.end(); pool = null; } }