IT-Stock/app/config.py
maxsoch 11da706573 Planification du résumé de stock modifiable depuis l'interface
L'horaire de l'email récapitulatif se configure maintenant sur
/destinataires (raccourcis courants + expression cron personnalisée) au
lieu de .env, avec reprogrammation immédiate sans redémarrage. Stocké en
base (ParametrePlanification) plutôt que dans un fichier de config.
Défaut changé pour tous les lundis à 9h.

Les exemples et le code n'utilisent que des noms de jours (mon, tue, ...)
dans les expressions cron : vérifié empiriquement qu'APScheduler ne suit
pas la convention Unix pour les jours numériques (0=lundi chez lui, pas
0=dimanche), ce qui rendrait "0 9 * * 1" trompeur.
2026-07-14 19:37:36 +02:00

33 lines
1.1 KiB
Python

"""
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)
settings = Settings()