/** * Paperclip PostgreSQL Connection Pool * @author Descomplicar® | @link descomplicar.pt | @copyright 2026 */ import 'dotenv/config' import pg from 'pg' const { Pool } = pg // Validação de credenciais — sem elas, pool não é criado (fallback gracioso) const user = process.env.PAPERCLIP_DB_USER const password = process.env.PAPERCLIP_DB_PASS if (!user || !password) { console.warn( '[paperclip-db] PAPERCLIP_DB_USER ou PAPERCLIP_DB_PASS não definidos — ' + 'pool PostgreSQL não será criado. A página Paperclip usará dados de fallback.' ) } // Configuração do pool PostgreSQL const pool: pg.Pool | null = (user && password) ? new Pool({ host: process.env.PAPERCLIP_DB_HOST || 'clip.descomplicar.pt', port: parseInt(process.env.PAPERCLIP_DB_PORT || '54329', 10), database: process.env.PAPERCLIP_DB_NAME || 'paperclip', user, password, max: 5, idleTimeoutMillis: 30000, connectionTimeoutMillis: 10000, }) : null // Teste de conexão (apenas se pool configurado) if (pool) { pool.connect() .then(client => { console.log('[paperclip-db] PostgreSQL conectado com sucesso') client.release() }) .catch(err => { console.error('[paperclip-db] Erro ao conectar ao PostgreSQL:', err.message) }) } export default pool