Seed: Formularantworten + berechnete Beitraege fuer confirmed-Gaeste #152

Closed
opened 2026-06-30 18:54:24 +00:00 by niboer · 0 comments
Owner

Beschreibung

Im Seed-Event "FamilienFeier 2027" (FEIER_ID) haben die confirmed-Gaeste derzeit keine formFinal-Daten und contributionEuro wird nicht gesetzt. Mit den bepreisten Formularfeldern (Radio/Checkbox, #133/#135) muessen die Beitraege aus den Formularantworten berechnet werden.

Aktuell (Zeile 115-121 in backend/prisma/seed.ts)

const gaeste = [
  { eventId: FEIER_ID, personId: M_MAX, status: 'confirmed', paymentStatus: 'paid',
    groupId: GRUPPE_ID, compositeRole: organiserRole.roleId },
  { eventId: FEIER_ID, personId: P_MUSTER, status: 'confirmed', paymentStatus: 'open',
    groupId: GRUPPE_ID },
  { eventId: FEIER_ID, personId: T_KOENIG, status: 'invited', paymentStatus: 'open' },
  { eventId: FEIER_ID, personId: L_WINTER, status: 'declined', paymentStatus: 'exempted' },
  { eventId: FEIER_ID, personId: A_SCHMIDT, status: 'confirmed', paymentStatus: 'paid' },
];

Neu

contributionEuro in EUR (nicht Cent), berechnet aus den gewaehlten Optionen:

Person Zimmer Extras Cent EUR Payment
Max (M_MAX) Doppel Fr-So (30000) Bettwaesche (300) + Handtuecher (500) 30.800 308,00 paid
Petra (P_MUSTER) Single Sa-So (12000) Handtuecher (500) 12.500 125,00 open
Anna (A_SCHMIDT) Single Fr-So (18000) 18.000 180,00 paid
const gaeste = [
  {
    eventId: FEIER_ID, personId: M_MAX, status: 'confirmed', paymentStatus: 'paid',
    groupId: GRUPPE_ID, compositeRole: organiserRole.roleId,
    contributionEuro: 308.00,
    formFinal: { Zimmer: 'Zimmer Doppel Fr - So', Extras: ['Bettwaesche', 'Handtuecher'] },
    respondedAt: new Date('2027-09-01T10:00:00Z'),
  },
  {
    eventId: FEIER_ID, personId: P_MUSTER, status: 'confirmed', paymentStatus: 'open',
    groupId: GRUPPE_ID,
    contributionEuro: 125.00,
    formFinal: { Zimmer: 'Zimmer Single Sa - So', Extras: ['Handtuecher'] },
    respondedAt: new Date('2027-09-01T10:30:00Z'),
  },
  { eventId: FEIER_ID, personId: T_KOENIG, status: 'invited', paymentStatus: 'open' },
  { eventId: FEIER_ID, personId: L_WINTER, status: 'declined', paymentStatus: 'exempted' },
  {
    eventId: FEIER_ID, personId: A_SCHMIDT, status: 'confirmed', paymentStatus: 'paid',
    contributionEuro: 180.00,
    formFinal: { Zimmer: 'Zimmer Single Fr - So' },
    respondedAt: new Date('2027-09-02T08:00:00Z'),
  },
];

formFinal-Format

  • radio → String (der gewaehlte Label)
  • checkbox → String[] (Array der gewaehlten Labels)
  • contributionEuro → Float in EUR (30800 Cent = 308.00 EUR)

Keine Aenderung

  • Event 2 (FamilienFeier 2028, planning) bleibt ohne Gaeste
  • invited/declined-Gaeste bleiben ohne formFinal
## Beschreibung Im Seed-Event "FamilienFeier 2027" (`FEIER_ID`) haben die `confirmed`-Gaeste derzeit keine `formFinal`-Daten und `contributionEuro` wird nicht gesetzt. Mit den bepreisten Formularfeldern (Radio/Checkbox, #133/#135) muessen die Beitraege aus den Formularantworten berechnet werden. ### Aktuell (Zeile 115-121 in `backend/prisma/seed.ts`) ```typescript const gaeste = [ { eventId: FEIER_ID, personId: M_MAX, status: 'confirmed', paymentStatus: 'paid', groupId: GRUPPE_ID, compositeRole: organiserRole.roleId }, { eventId: FEIER_ID, personId: P_MUSTER, status: 'confirmed', paymentStatus: 'open', groupId: GRUPPE_ID }, { eventId: FEIER_ID, personId: T_KOENIG, status: 'invited', paymentStatus: 'open' }, { eventId: FEIER_ID, personId: L_WINTER, status: 'declined', paymentStatus: 'exempted' }, { eventId: FEIER_ID, personId: A_SCHMIDT, status: 'confirmed', paymentStatus: 'paid' }, ]; ``` ### Neu `contributionEuro` in EUR (nicht Cent), berechnet aus den gewaehlten Optionen: | Person | Zimmer | Extras | Cent | EUR | Payment | |--------|--------|--------|------|-----|---------| | Max (M_MAX) | Doppel Fr-So (30000) | Bettwaesche (300) + Handtuecher (500) | 30.800 | 308,00 | paid | | Petra (P_MUSTER) | Single Sa-So (12000) | Handtuecher (500) | 12.500 | 125,00 | open | | Anna (A_SCHMIDT) | Single Fr-So (18000) | — | 18.000 | 180,00 | paid | ```typescript const gaeste = [ { eventId: FEIER_ID, personId: M_MAX, status: 'confirmed', paymentStatus: 'paid', groupId: GRUPPE_ID, compositeRole: organiserRole.roleId, contributionEuro: 308.00, formFinal: { Zimmer: 'Zimmer Doppel Fr - So', Extras: ['Bettwaesche', 'Handtuecher'] }, respondedAt: new Date('2027-09-01T10:00:00Z'), }, { eventId: FEIER_ID, personId: P_MUSTER, status: 'confirmed', paymentStatus: 'open', groupId: GRUPPE_ID, contributionEuro: 125.00, formFinal: { Zimmer: 'Zimmer Single Sa - So', Extras: ['Handtuecher'] }, respondedAt: new Date('2027-09-01T10:30:00Z'), }, { eventId: FEIER_ID, personId: T_KOENIG, status: 'invited', paymentStatus: 'open' }, { eventId: FEIER_ID, personId: L_WINTER, status: 'declined', paymentStatus: 'exempted' }, { eventId: FEIER_ID, personId: A_SCHMIDT, status: 'confirmed', paymentStatus: 'paid', contributionEuro: 180.00, formFinal: { Zimmer: 'Zimmer Single Fr - So' }, respondedAt: new Date('2027-09-02T08:00:00Z'), }, ]; ``` ### formFinal-Format - `radio` → String (der gewaehlte Label) - `checkbox` → String[] (Array der gewaehlten Labels) - `contributionEuro` → Float in EUR (30800 Cent = 308.00 EUR) ### Keine Aenderung - Event 2 (FamilienFeier 2028, planning) bleibt ohne Gaeste - invited/declined-Gaeste bleiben ohne formFinal
Sign in to join this conversation.
No description provided.