from pydantic_settings import BaseSettings, SettingsConfigDict from typing import Optional, List class Settings(BaseSettings): model_config = SettingsConfigDict( env_file=".env", env_file_encoding="utf-8", case_sensitive=False, extra="ignore" ) # === SAGE 100c (Windows uniquement) === chemin_base: str utilisateur: str = "Administrateur" mot_de_passe: str # === Sécurité Gateway === sage_gateway_token: str # Token partagé avec le VPS Linux # === SMTP (optionnel sur Windows) === smtp_host: Optional[str] = None smtp_port: int = 587 smtp_user: Optional[str] = None smtp_password: Optional[str] = None smtp_from: Optional[str] = None # === API Windows === api_host: str = "0.0.0.0" api_port: int = 8000 # === CORS === cors_origins: List[str] = ["*"] settings = Settings() def validate_settings(): """Validation au démarrage""" if not settings.chemin_base or not settings.mot_de_passe: raise ValueError("❌ CHEMIN_BASE et MOT_DE_PASSE requis dans .env") if not settings.sage_gateway_token: raise ValueError("❌ SAGE_GATEWAY_TOKEN requis (doit être identique sur Linux)") return True