import { Pool } from 'pg'; const connectionString = process.env.DATABASE_URL || 'postgresql://agendapro:agendapro123@localhost:5432/agendapro'; // Extract password from connectionString manually just to check, or provide a fallback let fallbackPassword = process.env.DB_PASSWORD || process.env.POSTGRES_PASSWORD || ''; try { const url = new URL(connectionString); if (!url.password) { fallbackPassword = process.env.DB_PASSWORD || process.env.POSTGRES_PASSWORD || 'agendapro123'; } } catch (e) {} const pool = new Pool({ connectionString, password: fallbackPassword, max: 20, idleTimeoutMillis: 30000, connectionTimeoutMillis: 2000, }); pool.on('error', (err) => { console.error('Unexpected error on idle client', err); }); export async function query(text: string, params?: unknown[]) { const start = Date.now(); const res = await pool.query(text, params); const duration = Date.now() - start; if (process.env.NODE_ENV === 'development') { console.log('Executed query', { text: text.substring(0, 80), duration, rows: res.rowCount }); } return res; } export async function getClient() { const client = await pool.connect(); return client; } export default pool;