feat(pricing): Sätze kommen aus der Preistabelle, Rechner kann sie speichern
Die Credits-Sätze sind im Portal nicht mehr hart codiert. Neuer Endpoint GET /api/pricing/tariff liest die geteilte Tabelle billing_tariff (mit den beschlossenen Werten als Rückfallebene, falls die Tabelle fehlt), PUT /api/pricing/tariff schreibt sie mit Validierung und Audit-Eintrag. - Die Infozeile im Verbrauch-Bereich rendert ihre Zahlen aus der Tabelle, der statische Text bleibt nur als Rückfallebene stehen. - Die Rechner-Regler starten auf den aktiven Preisen, der Hinweis nennt die tatsächlich abgerechneten Sätze, und der neue Knopf "Diese Sätze als aktive Preise speichern" schreibt sie nach Rückfrage in die Tabelle. Der Monitor bucht ab der nächsten Aktion mit den neuen Werten. - Migration migrations/2026-07-25_billing_tariff.py für die eigene Staging-DB (auf Live legt die Tabelle der Monitor an und befüllt sie mit seinen wirksamen Konfigurationswerten). Gegenstück im Monitor: Commit 027244a (billing_tariff als Quelle der Buchung). Promote-Reihenfolge bleibt, erst Monitor, dann Verwaltung. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -271,7 +271,7 @@
|
||||
</div>
|
||||
<p style="margin-top:10px; font-size:12px; color:var(--text-muted); display:flex; align-items:center; gap:6px;">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="flex-shrink:0;"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg>
|
||||
<span>Zur Einordnung. Ein Live-Lauf kostet 45 Credits, das Anlegen einer Recherche 120 (drei Durchläufe), jede Vertiefung 40, Chat und Beschreibungs-Assistent je 1 Credit.
|
||||
<span><span id="tariffInfoText">Zur Einordnung. Ein Live-Lauf kostet 45 Credits, das Anlegen einer Recherche 120 (drei Durchläufe), jede Vertiefung 40, Chat und Beschreibungs-Assistent je 1 Credit.</span>
|
||||
<a href="#" onclick="openRechnerTab(); return false;" style="color:var(--accent);">Verbrauchsrechner öffnen</a></span>
|
||||
</p>
|
||||
|
||||
@@ -1217,7 +1217,7 @@
|
||||
</div>
|
||||
|
||||
<script src="/static/js/a11y.js?v=20260725a"></script>
|
||||
<script src="/static/js/app.js?v=20260725d"></script>
|
||||
<script src="/static/js/app.js?v=20260725e"></script>
|
||||
<script src="/static/js/sources.js?v=20260522x2"></script>
|
||||
<script src="/static/js/x-scraper.js?v=20260522a"></script>
|
||||
<script src="/static/js/source-health.js?v=20260509l"></script>
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren