Project

General

Profile

Actions

Feature #1142

open
RA

Feature #1133: Implémenter une page de profil utilisateur avec gestion des crédits et des tiers d'abonnement

Backend — Notifications email (mot de passe, tier, crédits bas <20 %)

Feature #1142: Backend — Notifications email (mot de passe, tier, crédits bas <20 %)

Added by Redmine Admin about 2 months ago. Updated about 2 months ago.

Status:
QA
Priority:
Normal
Assignee:
-
Start date:
06/18/2026
Due date:
% Done:

0%

Estimated time:
spec_ref:

issue:1133 — spec in epic + ticket description

build_status:
build_number:
ci_run_url:
scan_status:
scan_report_url:
deploy_status:
preprod_url:
deployed_at:
branch:
feat/1142-email-notifications
pr_url:
https://github.com/omdev-tech/PipeLiner-Client/pull/68
security_key:
severity:
paused:

Description

## Objectif
Envoyer des emails automatiques en réaction aux événements de domaine émis par le modèle crédits/tiers (#1141). Couvre : changement de mot de passe, changement de tier, et crédits bas (<20 % du quota du tier).

## Dépendances
Dépend du backend modèle crédits/tiers/historique (#1141) qui émet les événements de domaine.

## Portée
- Souscripteurs/handlers consommant les événements de domaine (tier changé, crédits ajustés/bas, mot de passe changé) côté `api/` (application/infrastructure).
- Gabarits d'email (FR) pour : confirmation de changement de mot de passe, notification de changement de tier (ancien→nouveau), alerte crédits bas (<20 %).
- Service d'envoi via la configuration SMTP existante; envoi non bloquant (n'échoue pas la requête métier si l'email échoue — log + retry/best-effort).
- Anti-spam pour l'alerte crédits bas : ne pas renvoyer tant que le seuil n'est pas re-franchi (un seul email par passage sous 20 %).

## Acceptance criteria
- [ ] Un email de confirmation est envoyé lors d'un changement de mot de passe.
- [ ] Un email est envoyé au client lors d'un changement de tier (mentionnant ancien et nouveau tier).
- [ ] Une alerte email est envoyée quand les crédits passent sous 20 % du quota, une seule fois par franchissement.
- [ ] Les emails sont en français et utilisent la configuration SMTP du projet.
- [ ] L'échec d'envoi d'email ne fait pas échouer l'opération métier (loggé, best-effort).
- [ ] Tests pytest verts (handlers déclenchés sur événements, mock SMTP), `ruff check .` et `mypy src` propres.

Actions

Also available in: PDF Atom