Zum Inhalt

ADR-006: Plan-Feature-Management

Stand: 06.08.2026 18:42 Branch: main Status: Akzeptiert

Datum, Uhrzeit Version Änderung Autor
06.08.2026 18:42 1.0 Bereits umgesetzte Architekturentscheidung aus CLAUDE.md in einen eigenständigen ADR migriert Codex

Kontext

Tarife müssen festlegen können, welche Use Cases enthalten sind und welche Mengenbegrenzungen für Benutzer, Kunden und Equipment gelten. Einzelne Tenants benötigen zusätzlich überschreibbare Limits, beispielsweise während einer Testphase.

Die Entscheidung war bisher nur in CLAUDE.md, im Prisma-Schema und im Seed-Script dokumentiert.

Entscheidung

Plan-Features werden als systemweite Standardwerte in der Tabelle plan_features geführt und können für einzelne Tenants über dafür vorgesehene Tenant-Felder überschrieben werden.

  • plan_features ist die zentrale Konfiguration pro Plan und Use Case.
  • is_included steuert, ob ein Use Case in einem Plan enthalten ist.
  • max_users, max_customers und max_equipment definieren Standardlimits.
  • Tenantbezogene Trial-Limits können die Standardwerte überschreiben.
  • Neue Use Cases werden durch neue Konfigurationseinträge ergänzt, nicht durch fest codierte Planprüfungen.

Begründung

  • Planregeln bleiben datengetrieben und zentral wartbar.
  • Neue Use Cases oder geänderte Limits benötigen keine verteilten Codeänderungen.
  • Systemweite Standards und tenantbezogene Ausnahmen sind klar getrennt.
  • Die bestehende Prisma-Implementierung und das Seed-Script folgen bereits diesem Modell.

Konsequenzen

  • Planprüfungen müssen plan_features als maßgebliche Konfiguration verwenden.
  • Tenantüberschreibungen dürfen nur die ausdrücklich vorgesehenen Werte ersetzen.
  • Änderungen an Planwerten müssen auditierbar und mit Seed- beziehungsweise Migrationslogik abgestimmt sein.
  • Eine spätere Erweiterung der Preislogik soll dieses Datenmodell fortführen oder durch ein neues ADR ersetzen.

Umsetzungsstand

  • Prisma-Modell PlanFeature: umgesetzt
  • Seed-Daten: umgesetzt
  • Vollständige administrative Pflegeoberfläche: noch offen

Verwandte Dokumente

  • backend/prisma/schema.prisma
  • backend/prisma/seed.ts
  • CLAUDE.md (historische Fundstelle)