From 8dad6454f52abb6808006a173df7aa294ffcff32 Mon Sep 17 00:00:00 2001 From: jerem Date: Mon, 15 Jun 2026 14:51:27 +0200 Subject: [PATCH] Extra usage: montants en euros (centimes/100), affiche utilise / plafond mensuel --- backend/integrations/claude_usage.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/backend/integrations/claude_usage.py b/backend/integrations/claude_usage.py index 03a2d36..f787424 100644 --- a/backend/integrations/claude_usage.py +++ b/backend/integrations/claude_usage.py @@ -72,22 +72,20 @@ class ExtraUsage: limit: float | None currency: str = "EUR" - @property - def remaining(self) -> float | None: - """Crédits extra encore disponibles avant le plafond mensuel.""" - if self.limit is None: - return None - return max(0.0, self.limit - self.used) + def _fmt(self, cents: float) -> str: + """Montant en euros : les valeurs de l'API sont en centimes (136 -> 1,36€).""" + sym = "€" if self.currency == "EUR" else f" {self.currency}" + v = cents / 100 + s = f"{int(v)}" if v == int(v) else f"{v:.2f}".replace(".", ",") + return f"{s}{sym}" @property def label(self) -> str: - sym = "€" if self.currency == "EUR" else self.currency + # L'API n'expose que l'extra dépensé sur le mois et le plafond mensuel + # (pas le solde de crédits prépayés). On affiche donc utilisé / plafond. if self.limit: - return ( - f"Extra : {self.remaining:.0f}{sym} restant" - f" · {self.used:.0f}{sym} utilisé / {self.limit:.0f}{sym}" - ) - return f"Extra : {self.used:.0f}{sym} utilisé" + return f"Extra : {self._fmt(self.used)} utilisé / {self._fmt(self.limit)} ce mois" + return f"Extra : {self._fmt(self.used)} utilisé" @dataclass