From 1c817a4ac95228739687b0dd1bfb64018d574db2 Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Sun, 26 Jul 2026 09:57:06 +0200 Subject: [PATCH] =?UTF-8?q?refactor:=20supprime=20l'endpoint=20/api/dashbo?= =?UTF-8?q?ard/stats=20inutilis=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Aucun appelant : le tableau de bord se construit sur financial-summary, monthly-trends, recent-revenus et immeubles-shortcuts. Les compteurs qu'il exposait restent disponibles en ligne de commande via `plesna-gerance db-info`. Co-Authored-By: Claude Opus 5 --- src/plesna_gerance/api/routes/dashboard.py | 42 ---------------------- 1 file changed, 42 deletions(-) diff --git a/src/plesna_gerance/api/routes/dashboard.py b/src/plesna_gerance/api/routes/dashboard.py index 87854cf..8053e3b 100644 --- a/src/plesna_gerance/api/routes/dashboard.py +++ b/src/plesna_gerance/api/routes/dashboard.py @@ -85,53 +85,11 @@ class ImmeubleShortcutResponse(BaseModel): total_impayes: float -class DashboardStatsResponse(BaseModel): - """Stats enrichies pour le dashboard.""" - - documents: int - immeubles: int - lots: int - locataires: int - total_revenus: float - total_depenses: float - total_impayes: float - - # ============================================================ # Endpoints # ============================================================ -@router.get("/stats", response_model=DashboardStatsResponse) -async def get_dashboard_stats( - session: Session = Depends(get_session), -) -> DashboardStatsResponse: - """Retourne les statistiques enrichies pour le dashboard. - - Inclut les compteurs et les totaux financiers. - """ - # Compteurs - documents_count = session.execute(select(func.count(Document.id))).scalar() or 0 - immeubles_count = session.execute(select(func.count(Immeuble.id))).scalar() or 0 - lots_count = session.execute(select(func.count(Lot.id))).scalar() or 0 - locataires_count = session.execute(select(func.count(Locataire.id))).scalar() or 0 - - # Totaux financiers - total_revenus = session.execute(select(func.sum(Revenu.total))).scalar() or 0.0 - total_depenses = session.execute(select(func.sum(Depense.debit))).scalar() or 0.0 - total_impayes = session.execute(select(func.sum(Revenu.impayes))).scalar() or 0.0 - - return DashboardStatsResponse( - documents=documents_count, - immeubles=immeubles_count, - lots=lots_count, - locataires=locataires_count, - total_revenus=total_revenus, - total_depenses=total_depenses, - total_impayes=total_impayes, - ) - - @router.get("/financial-summary", response_model=FinancialSummaryResponse) async def get_financial_summary( session: Session = Depends(get_session),