Extra usage: montants en euros (centimes/100), affiche utilise / plafond mensuel

This commit is contained in:
jerem
2026-06-15 14:51:27 +02:00
parent ec1c8226a7
commit 8dad6454f5

View File

@@ -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