import os
import streamlit as st
from dotenv import load_dotenv

load_dotenv(".env")
load_dotenv(".env.local", override=True)

# Fonction pour déterminer l'environnement à partir de l'en-tête X-Environment
def determine_environment():
    # Valeur par défaut (si aucun en-tête n'est détecté)
    environment = "dev"

    # Si nous sommes dans une session Streamlit
    if hasattr(st, 'context') and hasattr(st.context, 'headers'):
        try:
            # Lire directement l'en-tête X-Environment défini par Nginx : dev/public
            nginx_env = st.context.headers.get("x-environment")

            if nginx_env:
                environment = nginx_env.lower()
        except Exception as e:
            st.error(f"Erreur lors de la lecture de l'en-tête X-Environment: {e}\nEnvironnement dev par défaut")

    return environment

ENV = determine_environment()

GITEA_URL = os.getenv("GITEA_URL", "https://fabnum-git.peccini.fr/api/v1")
GITEA_TOKEN = os.getenv("GITEA_TOKEN", "")
ORGANISATION = os.getenv("ORGANISATION", "fabnum")
DEPOT_FICHES = os.getenv("DEPOT_FICHES", "fiches")
DEPOT_CODE = os.getenv("DEPOT_CODE", "code")
ENV_CODE = os.getenv("ENV_CODE")
DOT_FILE = os.getenv("DOT_FILE")
INSTRUCTIONS = os.getenv("INSTRUCTIONS", "Instructions.md")

FICHE_IHH = os.getenv("FICHE_IHH")
FICHE_ICS = os.getenv("FICHE_ICS")
FICHE_IVC = os.getenv("FICHE_IVC")
FICHE_ISG = os.getenv("FICHE_ISG")

# Optionnel : vérification + fallback
for key, value in [("FICHE_IHH", FICHE_IHH), ("FICHE_ICS", FICHE_ICS), ("FICHE_IVC", FICHE_IVC), ("FICHE_ISG", FICHE_ISG)]:
    if not value:
        raise EnvironmentError(f"Variable d'environnement '{key}' non définie.")

FICHES_CRITICITE = {
    "IHH": FICHE_IHH,
    "IVC": FICHE_IVC,
    "ICS": FICHE_ICS,
    "ISG": FICHE_ISG
}
