- Add database schema documentation: `Database_Schema_V1-V009.md` for tenant-isolated entities (`veranstaltungen`, `turniere`, `bewerbe`, etc.). - Draft initial Kassa API reference: `Kassa_API.md` (status: DRAFT). - Finalize Stammdaten API reference: `API_Uebersicht_Stammdaten.md` (status: ACTIVE). - Summarize tenant isolation and multi-tenant strategy in `Multi_Tenant_Kurz.md`. - Update `README.md` with links to new references. Mark B-2 roadmap tasks as partially complete.
1.8 KiB
1.8 KiB
| type | status | owner | last_update |
|---|---|---|---|
| Reference | DRAFT | Backend Developer | 2026-04-03 |
Kassa-API (Entwurf)
Abhängigkeit: Backend Sprint B‑2 (Kassa-Service) — laut Curator‑Roadmap noch offen. Dieses Dokument reserviert die Endpunkte und beschreibt die Erwartungen. Die Implementierungsdetails werden ergänzt, sobald der Service fertiggestellt ist.
Mandantenkontext: Erfordert X-Event-Id (ADR‑0021). Alle Kassa‑Operationen sind tenant‑lokal.
Endpunkte (geplant)
-
GET
/kassa/saldo— Liefert den aktuellen Saldo der Veranstaltung und optional pro Turnier.- Query:
turnierId(optional, UUID) - Response:
{ saldoCents: long, currency: "EUR", scope: "veranstaltung"|"turnier", turnierId?: UUID }
- Query:
-
GET
/zahlvorgaenge— Listet Kassa‑Buchungen/Zahlvorgänge (paginiert, filterbar).- Query:
turnierId?,teilnehmerId?,typ?(EINZAHLUNG|AUSZAHLUNG|KORREKTUR),limit,offset - Response: Liste von Transaktionen mit Betrag, Zeit, Verweis (Teilnehmer/Turnier), Notiz
- Query:
-
POST
/zahlvorgaenge— Erstellt einen neuen Zahlungsvorgang (Ein-/Auszahlung/Korrektur).- Body:
{ typ, betragCents, currency, referenz: { teilnehmerId?|turnierId? }, notiz? } - Wirkung: Aktualisiert
teilnehmer_kontenbzw.turnier_kassaatomar.
- Body:
Validierung & Regeln (voraussichtlich)
- Atomare Konsistenz: Transaktion + Saldo‑Update innerhalb einer DB‑Transaktion.
- Negativsaldo optional durch Feature‑Flag blockierbar.
- Audit‑Trail pro Vorgang (who/when), Idempotenz‑Key optional.
Implementierungsstand
- Datenstrukturen
teilnehmer_kontenundturnier_kassasind per Flyway angelegt (siehe Datenbankschema). - Endpunkte folgen nach Abschluss Backend B‑2. Dieses Dokument wird dann auf
status: ACTIVEgesetzt.