IT-Stock/app/config.py

38 lines
1.4 KiB
Python
Raw Normal View History

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