// src/database/connection.js
const { Client } = require('pg');
const config = require('../config');

// Création du client PostgreSQL avec la configuration centralisée
const client = new Client({
  host: config.database.host,
  port: config.database.port,
  user: config.database.user,
  password: config.database.password,
  database: config.database.database
});

let isConnecting = false;

/**
 * Initialise la connexion à la base de données
 * Réessaie automatiquement si la connexion échoue
 */
function initDatabase() {
  if (isConnecting) {
    console.log('[DB] Tentative de connexion déjà en cours, ignorer...');
    return;
  }
  
  console.log('[DB] Initialisation de la connexion à PostgreSQL...');
  isConnecting = true;
  
  client.connect(err => {
    isConnecting = false;
    
    if (err) {
      console.error('[DB] Erreur de connexion à la base de données:', err);
      setTimeout(initDatabase, config.database.reconnectInterval);
    } else {
      console.log('[DB] Connecté à la base de données PostgreSQL.');
    }
  });
}

// Initialise la connexion lors de l'importation de ce module
initDatabase();

module.exports = client;