// Centralized environment loader
import path from 'path';
import { fileURLToPath } from 'url';
import dotenv from 'dotenv';
import fs from 'fs';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// Versuche zuerst Produktions-.env, dann lokale .env
const productionEnvPath = '/opt/yourpart/backend/.env';
const localEnvPath = path.resolve(__dirname, '../.env');

let envPath = localEnvPath; // Fallback
if (fs.existsSync(productionEnvPath)) {
  envPath = productionEnvPath;
  console.log('[env] Lade Produktions-.env:', productionEnvPath);
} else {
  console.log('[env] Lade lokale .env:', localEnvPath);
}

// Lade .env-Datei
console.log('[env] Versuche .env zu laden von:', envPath);
console.log('[env] Datei existiert:', fs.existsSync(envPath));
console.log('[env] Datei lesbar:', fs.accessSync ? (() => { try { fs.accessSync(envPath, fs.constants.R_OK); return true; } catch { return false; } })() : 'unbekannt');

const result = dotenv.config({ path: envPath });
if (result.error) {
  console.warn('[env] Konnte .env nicht laden:', result.error.message);
  console.warn('[env] Fehler-Details:', result.error);
} else {
  console.log('[env] .env erfolgreich geladen von:', envPath);
  console.log('[env] Geladene Variablen:', Object.keys(result.parsed || {}));
}

// Debug: Zeige Redis-Konfiguration
console.log('[env] Redis-Konfiguration:');
console.log('[env] REDIS_HOST:', process.env.REDIS_HOST);
console.log('[env] REDIS_PORT:', process.env.REDIS_PORT);
console.log('[env] REDIS_PASSWORD:', process.env.REDIS_PASSWORD ? '***gesetzt***' : 'NICHT GESETZT');
console.log('[env] REDIS_URL:', process.env.REDIS_URL);

if (!process.env.SECRET_KEY) {
  console.warn('[env] SECRET_KEY nicht gesetzt in .env');
}
export {};
