// ==============================================================================
// Void-Genesis - Datenbank-Konfiguration
// ==============================================================================

import pg from 'pg';

// Wir nutzen einen Connection Pool. Das ist deutlich effizienter als für jede
// Anfrage eine neue Verbindung zur Datenbank aufzubauen. Der Pool hält im
// Hintergrund mehrere Verbindungen offen und verteilt sie dynamisch.
const { Pool } = pg;

const pool = new Pool({
  // Diese Variablen kommen direkt aus unserer docker-compose.yml 
  // (Bereich 'environment' des Backend-Containers)
  host: process.env.DB_HOST,
  port: process.env.DB_PORT,
  user: process.env.DB_USER,
  password: process.env.DB_PASS,
  database: process.env.DB_NAME,
});

// Wir testen beim Start einmalig, ob die Verbindung klappt.
// So sehen wir im Docker-Log sofort, falls z.B. das Passwort falsch ist.
pool.connect((err, client, release) => {
  if (err) {
    console.error('❌ Fehler beim Verbinden mit der PostgreSQL-Datenbank:', err.stack);
  } else {
    console.log('✅ Erfolgreich mit der PostgreSQL-Datenbank (void_lobby) verbunden!');
    // WICHTIG: Den Client immer direkt wieder freigeben, wenn wir fertig sind
    release();
  }
});

// Wir exportieren den Pool, damit wir ihn in anderen Dateien (wie unseren Routes)
// für Datenbankabfragen nutzen können.
export default pool;