""" Configuration de l'application FastAPI. """ from pydantic_settings import BaseSettings import os class Settings(BaseSettings): """Configuration globale de l'application""" # Base de données db_host: str = os.getenv("DB_HOST", "localhost") db_port: int = int(os.getenv("DB_PORT", "3306")) db_name: str = os.getenv("DB_NAME", "evoting_db") db_user: str = os.getenv("DB_USER", "evoting_user") db_password: str = os.getenv("DB_PASSWORD", "evoting_pass123") # Sécurité secret_key: str = os.getenv( "SECRET_KEY", "your-secret-key-change-in-production-12345" ) algorithm: str = "HS256" access_token_expire_minutes: int = 30 # Application debug: bool = os.getenv("DEBUG", "false").lower() == "true" app_name: str = "E-Voting System API" app_version: str = "0.1.0" # Cryptographie elgamal_p: int = 23 # Nombre premier (prototype) elgamal_g: int = 5 # Générateur class Config: env_file = ".env" case_sensitive = False extra = "ignore" # Ignorer les variables d'env non définies @property def database_url(self) -> str: """Construire l'URL de connection à la base de données""" return ( f"mysql+pymysql://{self.db_user}:{self.db_password}" f"@{self.db_host}:{self.db_port}/{self.db_name}" ) settings = Settings()