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:
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user