refactor: supprime l'endpoint /api/dashboard/stats inutilisé

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 <noreply@anthropic.com>
This commit is contained in:
2026-07-26 09:57:06 +02:00
parent 5a132b1258
commit 1c817a4ac9

View File

@@ -85,53 +85,11 @@ class ImmeubleShortcutResponse(BaseModel):
total_impayes: float 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 # 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) @router.get("/financial-summary", response_model=FinancialSummaryResponse)
async def get_financial_summary( async def get_financial_summary(
session: Session = Depends(get_session), session: Session = Depends(get_session),