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