Backend: Refund-Stati (refund_open/refund_done) fuer Zahlungsstatus #160

Closed
opened 2026-07-01 15:12:54 +00:00 by niboer · 2 comments
Owner

Problem

Aktuell gibt es nur die Zahlungsstatus open, paid, exempted. Bei Stornierung einer bezahlten Zusage fehlt ein Status fuer die Rueckerstattung.

Aenderungen

Datei Aenderung
backend/prisma/migrations/0001_full_schema/migration.sql CHECK-Constraint: refund_open, refund_done hinzufuegen
backend/openapi.yaml paymentStatus-Enum in Guest, UpdateGuestPayment, Invitation erweitern
backend/src/routes/guests.ts Auto-Transition: confirmed+paid -> declined => paymentStatus='refund_open'; status==='invited'-Block: auch paymentStatus='open' resetten; VALID_PAYMENT erweitern
backend/src/__tests__/guests.test.ts Tests: Auto-Transition, declined->invited reset
backend/src/__tests__/integration.test.ts Testpfad anpassen falls noetig

Auto-Transition

if (existing.status === 'confirmed' && existing.paymentStatus === 'paid' && status === 'declined') {
  updateData.paymentStatus = 'refund_open';
}

Betroffene Dateien

backend (5 Dateien)

### Problem Aktuell gibt es nur die Zahlungsstatus `open`, `paid`, `exempted`. Bei Stornierung einer bezahlten Zusage fehlt ein Status fuer die Rueckerstattung. ### Aenderungen | Datei | Aenderung | |-------|-----------| | `backend/prisma/migrations/0001_full_schema/migration.sql` | CHECK-Constraint: `refund_open`, `refund_done` hinzufuegen | | `backend/openapi.yaml` | `paymentStatus`-Enum in `Guest`, `UpdateGuestPayment`, `Invitation` erweitern | | `backend/src/routes/guests.ts` | Auto-Transition: `confirmed`+`paid` -> `declined` => `paymentStatus='refund_open'`; `status==='invited'`-Block: auch `paymentStatus='open'` resetten; `VALID_PAYMENT` erweitern | | `backend/src/__tests__/guests.test.ts` | Tests: Auto-Transition, declined->invited reset | | `backend/src/__tests__/integration.test.ts` | Testpfad anpassen falls noetig | ### Auto-Transition ```typescript if (existing.status === 'confirmed' && existing.paymentStatus === 'paid' && status === 'declined') { updateData.paymentStatus = 'refund_open'; } ``` ### Betroffene Dateien backend (5 Dateien)
niboer 2026-07-01 15:12:54 +00:00
Author
Owner

Implemented in bd93d3d

Implemented in bd93d3d
Author
Owner

Follow-up in 8d2bedf: Drei String-Felder (Event.status, EventGuest.status, EventGuest.paymentStatus) durch native Prisma-Enums ersetzt. CHECK-Constraints entfallen, stattdessen PostgreSQL-Enums via CREATE TYPE.

Follow-up in 8d2bedf: Drei String-Felder (Event.status, EventGuest.status, EventGuest.paymentStatus) durch native Prisma-Enums ersetzt. CHECK-Constraints entfallen, stattdessen PostgreSQL-Enums via CREATE TYPE.
Sign in to join this conversation.
No description provided.