import sys
from pathlib import Path
from PySide6.QtWidgets import QApplication

PROJECT_ROOT = Path(__file__).resolve().parents[2]

def get_internal_dir() -> Path:
    # Retourne le chemin vers les ressources figées à l'intérieur de l'EXE (_MEIPASS).
    # En mode script, retourne le dossier du fichier .py.
    if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
        return Path(sys._MEIPASS).resolve()
    return Path(__file__).resolve().parents[2]

def get_executable_dir() -> Path:
    # Retourne le chemin du dossier contenant réellement le fichier .exe.
    #  C'est ici que se trouve votre 'config.json'.
    if getattr(sys, 'frozen', False):
        # sys.executable est le chemin complet vers l'application .exe
        return Path(sys.executable).parent.resolve()
    return Path(__file__).resolve().parents[2]

def quit_application(exit_code: int = 0) -> None:
    app = QApplication.instance()
    if app is not None:
        app.closeAllWindows()
        app.exit(exit_code)
    sys.exit(exit_code)
