Files
lemonspace_app/components/billing/CLAUDE.md
Matthias Meister 1e99251506 docs: add Sub-Dokumentation section to AGENTS.md and CLAUDE.md for improved documentation structure
- Introduced a new section detailing the Single Source of Truth for various components, linking to their respective CLAUDE.md files.
- Enhanced clarity on documentation organization across different areas of the project.
2026-03-31 21:12:26 +02:00

1.6 KiB

components/billing/ — Billing & Subscription UI

UI-Komponenten für Credit-Anzeige, Subscription-Management und Top-Up.


Dateien

Datei Zweck
pricing-cards.tsx Tier-Vergleich (Free / Starter / Pro / Max)
manage-subscription.tsx Aktuelle Subscription verwalten (Upgrade, Kündigung)
topup-panel.tsx Credit-Nachkauf-UI (fixe Pakete + Custom-Betrag)

Tier-Struktur

Tiers und ihre Credit-Mengen sind in convex/credits.ts → TIER_CONFIG definiert. Die Billing-UI liest diese Werte über Convex-Queries — keine doppelte Konfiguration hier.

Free:    50 Cr/Monat  (€0)
Starter: 400 Cr/Monat (€8)
Pro:     3.300 Cr/Monat (€59)
Max:     6.700 Cr/Monat (€119)

1 Credit = €0,01 — Diese Umrechnung überall konsistent verwenden.


Payment-Integration

Polar.sh ist der aktuelle Payment-Provider (MoR, VAT-Handling). Webhooks landen in convex/http.tsconvex/polar.ts.

Hinweis: convex/schema.ts enthält noch lemonSqueezySubscriptionId-Felder — Überbleibsel einer früheren Integration. Lemon Squeezy ist nicht mehr aktiv. Polar-Felder (polarSubscriptionId) sind maßgeblich.


Credit-Balance im Dashboard

Die Credit-Balance wird auch in components/dashboard/credit-overview.tsx angezeigt. Beide Komponenten nutzen dieselbe Convex-Query (api.credits.getBalance).


Konventionen

  • Tier-Upgrades immer über Polar-Checkout (kein direktes Schreiben in subscriptions-Tabelle)
  • topUp Mutation (convex/credits.ts) für Credit-Nachkauf aufrufen
  • Monatliches Top-Up-Limit pro Tier beachten (siehe TIER_CONFIG.topUpLimit)