const { Pool } = require("pg");
require("dotenv").config();

// Parse PostgreSQL URI
const connectionString =
  process.env.POSTGRESQL_URI ||
  "postgresql://songlyric_user:MySecurePass123@192.168.10.130:5432/church_songlyric";

const pool = new Pool({
  connectionString,
  max: 20,
  idleTimeoutMillis: 30000,
  connectionTimeoutMillis: 10000,
});

// Test connection on startup
pool
  .connect()
  .then((client) => {
    console.log("✅ Connected to PostgreSQL database");
    client.release();
  })
  .catch((err) => {
    console.error("❌ Failed to connect to PostgreSQL:", err.message);
  });

// Query helper
const query = async (text, params) => {
  const start = Date.now();
  try {
    const res = await pool.query(text, params);
    const duration = Date.now() - start;
    if (duration > 100) {
      console.log("Slow query:", {
        text: text.substring(0, 100),
        duration,
        rows: res.rowCount,
      });
    }
    return res;
  } catch (err) {
    console.error("Query error:", err.message);
    throw err;
  }
};

module.exports = {
  pool,
  query,
};
