Files
Dragonbank/DragonBank/backend/services/stats_service.py
T
2026-03-27 17:52:41 +01:00

42 lines
1.5 KiB
Python

from database import creer_connexion, serialiser_valeur
from models.transaction import TransactionDAO
class StatsService:
def __init__(self):
self.transaction_dao = TransactionDAO()
def obtenir_statistiques(self, id_utilisateur_courant):
conn = creer_connexion()
try:
curseur = conn.cursor()
curseur.execute(
"""
SELECT COALESCE(SUM(balance), 0) AS total_balance,
COUNT(*) AS total_accounts
FROM accounts
WHERE user_id = %s AND status = 'active'
""",
(id_utilisateur_courant,)
)
stats_comptes = curseur.fetchone()
stats_tx = self.transaction_dao.statistiques(conn, id_utilisateur_courant)
curseur.execute(
'SELECT COUNT(*) AS total_beneficiaries FROM beneficiaries WHERE user_id = %s',
(id_utilisateur_courant,)
)
stats_ben = curseur.fetchone()
return {
'total_balance': serialiser_valeur(stats_comptes['total_balance']),
'total_accounts': stats_comptes['total_accounts'],
'monthly_transactions': stats_tx['transactions_mois'],
'total_sent': serialiser_valeur(stats_tx['total_envoye']),
'total_received': serialiser_valeur(stats_tx['total_recu']),
'total_beneficiaries': stats_ben['total_beneficiaries']
}
finally:
conn.close()