package config

import (
	"fmt"
	"os"

	"github.com/joho/godotenv"
)

// LoadEnvFiles charge les fichiers .env selon l'environnement (T0032)
// Charge dans l'ordre: .env.{env}, .env
// Les variables d'environnement système ont toujours priorité (godotenv ne surcharge pas les variables existantes)
func LoadEnvFiles(env string) error {
	// Charger .env.{env} si existe (ex: .env.development, .env.production, .env.test)
	envFile := ".env." + env
	if _, err := os.Stat(envFile); err == nil {
		if err := godotenv.Load(envFile); err != nil {
			return fmt.Errorf("failed to load %s: %w", envFile, err)
		}
	}

	// Charger .env en fallback (ignore si n'existe pas)
	// Note: godotenv.Load() ne retourne pas d'erreur si le fichier n'existe pas
	_ = godotenv.Load()

	return nil
}
