""" Configuration de l'application, lue depuis les variables d'environnement. En local, copier .env.example vers .env et remplir les valeurs utiles ; python-dotenv charge automatiquement ce fichier .env au démarrage, donc pas besoin d'exporter les variables manuellement dans le shell. """ import os from dotenv import load_dotenv load_dotenv() class Settings: """Regroupe tous les réglages venant de l'environnement, avec des valeurs par défaut raisonnables pour le développement local.""" smtp_host: str | None = os.getenv("SMTP_HOST") or None smtp_port: int = int(os.getenv("SMTP_PORT", "25")) smtp_user: str | None = os.getenv("SMTP_USER") or None smtp_password: str | None = os.getenv("SMTP_PASSWORD") or None smtp_from: str = os.getenv("SMTP_FROM", "stock-it@clinique.local") # Si aucun SMTP_HOST n'est renseigné (typiquement en dev local, sans # accès au relais mail de la clinique), les alertes sont simplement # affichées dans la console au lieu d'être envoyées. Voir email_alerts.py. smtp_configured: bool = bool(smtp_host) # Expression cron classique (minute heure jour mois jour_semaine) pour # l'email récapitulatif périodique de l'état du stock. Par défaut : # tous les jours à 8h. Voir app/scheduler.py. resume_stock_cron: str = os.getenv("RESUME_STOCK_CRON", "0 8 * * *") settings = Settings()