feat(ui): add RSVP attendance option and admin features

* Implement attendance selection in RSVP form
* Add admin endpoints for managing RSVPs and guests
* Update RSVP handling to include attendance status
This commit is contained in:
2026-09-06 16:02:52 +02:00
parent 735601e179
commit b7e88099c8
9 changed files with 615 additions and 56 deletions
+2 -1
View File
@@ -24,7 +24,8 @@ CONFIG_PATH=../config.yaml ./wedding-server # serves on :8080
## Requirements
- Countdown to the wedding date, with day/date/time and venue, on the landing page.
- Landing page background: photos from `ui/assets/photos` slide in/out continuously behind the hero content.
- RSVP form: one or more guest names (add/remove rows, at least one required), message (optional) — no email/phone captured → saved + emailed to couple. Shows the RSVP deadline and its own countdown.
- RSVP form: Attending / Not-attending choice, one or more guest names (add/remove rows, at least one required), message (optional) — no email/phone captured → saved + emailed to couple. Shows the RSVP deadline and its own countdown.
- `/guests?admin=xxx`: unauthenticated admin editor — toggle attending, toggle adult/child, rename/remove guests, delete or add an RSVP. Gate is the URL flag only; `/api/admin/*` endpoints are unprotected. Non-attending RSVPs are excluded from the public guest list and counts.
- Photo upload: name (required), message (optional), email/phone (optional) + photo files → saved to `data/photos/`, links emailed to couple.
- Photo upload only opens **7 November 2026** (same date drives the countdown) — enforced server-side, not just hidden in the UI.
- Venue, RSVP deadline, and RSVP phone number sourced from the formal invitation (`concept/IMG-20260811-WA0020.jpg`).