51 lines
1.4 KiB
Python

"""
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()