Files
wedding-website/plans/milestone-05-guest-interactions.md
Raul Lugo 4ced446c9c
Build & Deployment / Build & Deploy (push) Failing after 5s
initial commit
2026-08-10 17:55:26 +02:00

85 lines
2.1 KiB
Markdown

# Milestone 05 — Optional Guest Interactions
## Reference
Read `plans/wedding-bootstrap-plan.md` first. This milestone depends on Milestone 04.
## Goal
Add optional guest interaction sections that make the wedding experience more personal: song requests, toast/speech requests, and advice/wish/memory messages.
## Scope
Implement only:
- Guest song request form section.
- Guest toast/speech request form section.
- Guest advice/wish/memory message form section.
- Query modules for these tables.
- Validation schemas.
- Admin display and basic management for these submissions.
- Localization copy for these sections.
## Non-goals
Do not implement:
- MinIO photo upload.
- Presigned URLs.
- CSV export unless explicitly requested later.
- Complex scheduling UI for toasts.
- Final design polish.
## Required constraints
- Guest-facing copy must use `invitations.language`.
- Admin UI must use shadcn/ui components only.
- Use Kysely query modules; do not add an ORM.
- Song requests should be limited, recommended max: 3 per invitation.
- Toast requests are voluntary and admin-approved.
## Implementation tasks
- Add query helpers for:
- song requests
- toast requests
- guest messages
- Add Zod schemas for interactions.
- Add localized copy for interaction sections.
- Add guest-facing form sections to `/invite/[token]`.
- Persist submissions.
- Add admin views on invitation detail page for:
- song requests
- toast requests
- guest messages
- Add toast status controls if feasible:
- pending
- accepted
- declined
- scheduled
## Verification
Run:
```bash
npm run lint
npm run build
```
Manual checks:
- Guest can submit up to 3 song requests.
- Guest can submit optional toast/speech request.
- Guest can submit advice/wish/memory message.
- Guest-facing text is localized by invitation language.
- Admin can view all submitted interaction data.
- Admin can update toast request status if implemented.
- Admin pages use shadcn/ui only.
## Acceptance criteria
- Optional guest interactions work end-to-end.
- Admin can review them.
- No upload functionality was implemented in this milestone.