This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user