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_TYPE_DEVIS: int = 0 SAGE_TYPE_BON_COMMANDE: int = 10 SAGE_TYPE_PREPARATION: int = 20 SAGE_TYPE_BON_LIVRAISON: int = 30 SAGE_TYPE_BON_RETOUR: int = 40 SAGE_TYPE_BON_AVOIR: int = 50 SAGE_TYPE_FACTURE: int = 60 # === 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