docs(api): capture procedure-support pattern
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
# API Router Procedure-Support Pattern
|
||||||
|
|
||||||
|
Ziel: Top-Level-Router bleiben dünne tRPC-Kompositionsschichten. Orchestrierung, Audit-Logik und
|
||||||
|
zusammengehörige Input-Schemas wandern in ein benachbartes `*-procedure-support.ts` Modul.
|
||||||
|
|
||||||
|
## Struktur
|
||||||
|
|
||||||
|
- `router/<domain>.ts`
|
||||||
|
Enthält nur Procedure-Wiring, Rollen-Gates und die Delegation an benannte Support-Funktionen.
|
||||||
|
- `router/<domain>-procedure-support.ts`
|
||||||
|
Enthält:
|
||||||
|
- zusammengehörige `zod`-Input-Schemas für Router-Procedures
|
||||||
|
- DB-Orchestrierung und Guard-Checks
|
||||||
|
- Audit-Aufrufe
|
||||||
|
- kleine private Hilfsfunktionen wie `withAuditUser(...)`
|
||||||
|
- `router/<domain>-support.ts`
|
||||||
|
Bleibt für pure Builder-, Resolver- und Transform-Helfer reserviert.
|
||||||
|
|
||||||
|
## Teststrategie
|
||||||
|
|
||||||
|
- `__tests__/<domain>-support.test.ts`
|
||||||
|
Deckt reine Helper-Funktionen ab.
|
||||||
|
- `__tests__/<domain>-procedure-support.test.ts`
|
||||||
|
Deckt Orchestrierung, Audit-Snapshots und Guard-Verhalten ab.
|
||||||
|
- `__tests__/<domain>-router.test.ts`
|
||||||
|
Deckt echte `createCaller`-Pfade ab und hält den Router als dünne Integrationsschicht ehrlich.
|
||||||
|
|
||||||
|
## Guardrails
|
||||||
|
|
||||||
|
- Öffentliche Router-Contracts bleiben stabil.
|
||||||
|
- Keine Logik zurück in den Top-Level-Router ziehen.
|
||||||
|
- Vorhandene pure Support-Module weiterverwenden statt duplizieren.
|
||||||
|
- Slice-Tests gezielt fahren; globales `tsc --noEmit` nur dort nutzen, wo kein fremder Blocker aktiv ist.
|
||||||
|
|
||||||
|
## Referenz-Slices
|
||||||
|
|
||||||
|
- `rate-card`
|
||||||
|
- `effort-rule`
|
||||||
|
- `experience-multiplier`
|
||||||
|
- `management-level`
|
||||||
|
- `blueprint`
|
||||||
|
- `client`
|
||||||
Reference in New Issue
Block a user