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

const pool = new Pool({
  user: process.env.DB_USER,
  host: process.env.DB_HOST,
  database: process.env.DB_NAME,
  password: process.env.DB_PASSWORD,
  port: process.env.DB_PORT,
});

pool.connect((err, client, release) => {
  if (err) {
    return console.error('Error acquiring client', err.stack);
  }
  client.query('SELECT NOW()', (err, result) => {
    release();
    if (err) {
      return console.error('Error executing query', err.stack);
    }
    console.log('Conexão estabelecida com o PostgreSQL em:', result.rows[0].now);
  });
});

module.exports = {
  query: (text, params, callback) => {
    return pool.query(text, params, callback);
  },
  get: (text, params, callback) => {
    pool.query(text, params, (err, res) => {
      if (err) {
        return callback(err);
      }
      callback(null, res.rows[0]);
    });
  },
  all: (text, params, callback) => {
    pool.query(text, params, (err, res) => {
      if (err) {
        return callback(err);
      }
      callback(null, res.rows);
    });
  },

  run: (text, params, callback) => {
    pool.query(text, params, (err, res) => {
      if (err) {
        return callback(err);
      }
      callback(null, res); // Passa o resultado completo (res) de volta para o modelo
    });
  }
};