feat(abrechnung): Credits-Uebertrag komplett entfernt
Produktentscheidung 07/2026: ungenutzte Credits verfallen zum Periodenende. Uebertrag-Checkbox aus allen drei Formularen (Kontingent bearbeiten, Lizenz anlegen, Org anlegen) samt Ausgrau-Logik raus, credits_rollover/credits_carried aus Modellen, Endpoints (overview/current/PUT budget) und insert_license_row raus, Anzeige inkl. Uebertrag im Org-Detail raus. Migrationsskript legt die beiden Spalten nicht mehr an. Gegenstueck zum Monitor-Commit f8499c4, Promote-Reihenfolge wie immer Monitor VOR Portal. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -27,8 +27,8 @@ class LicenseParams(BaseModel):
|
||||
|
||||
Wird zweifach genutzt, direkt beim Lizenz-Anlegen (LicenseCreate) und
|
||||
verschachtelt beim Org-Anlegen (OrgCreate.license). Die Laufzeitfelder
|
||||
(credits_used, credits_carried, credits_period_start, budget_warning_sent)
|
||||
verwaltet der Monitor, das Portal setzt nur Stellwerte.
|
||||
(credits_used, credits_period_start, budget_warning_sent) verwaltet der
|
||||
Monitor, das Portal setzt nur Stellwerte.
|
||||
"""
|
||||
license_type: str = Field(pattern="^(trial|annual|permanent)$")
|
||||
max_users: int = Field(default=5, ge=1, le=1000)
|
||||
@@ -40,11 +40,9 @@ class LicenseParams(BaseModel):
|
||||
unlimited_budget: bool = False
|
||||
# 'monthly' = Kontingent wird zum Monatswechsel neu gefuellt (der Monitor
|
||||
# setzt den Verbrauch traege zurueck), 'total' = gilt fuer die Laufzeit.
|
||||
# Ungenutzte Credits verfallen zum Periodenende (kein Uebertrag,
|
||||
# Produktentscheidung 07/2026).
|
||||
credits_period: str = Field(default="monthly", pattern="^(monthly|total)$")
|
||||
# Uebertrag ungenutzter Credits in den Folgemonat, der Monitor deckelt
|
||||
# auf ein Monatskontingent. Standard AUS (Entscheidung Nutzer 25.07.2026),
|
||||
# pro Kunde bewusst zuschaltbar.
|
||||
credits_rollover: bool = False
|
||||
|
||||
|
||||
class OrgCreate(BaseModel):
|
||||
@@ -97,8 +95,6 @@ class LicenseResponse(BaseModel):
|
||||
# Neue Kontingent-Felder, alle optional mit Default, damit Responses auch
|
||||
# von einer noch nicht migrierten Datenbank validieren.
|
||||
credits_period: Optional[str] = "monthly"
|
||||
credits_rollover: Optional[bool] = False
|
||||
credits_carried: Optional[float] = 0
|
||||
credits_period_start: Optional[str] = None
|
||||
created_at: str
|
||||
globe_access: bool = False
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren