feat(events): add mana-events service + public RSVP flow (Phase 1b)

New Hono+Bun service at services/mana-events on port 3065 with two
schemas in mana_platform: events_published (snapshots) and public_rsvps
(unauthenticated responses), plus a per-token hourly rate-limit bucket.

- Host endpoints (JWT) for publish/update/unpublish/list-rsvps
- Public endpoints for snapshot fetch + RSVP upsert with rate limiting
- New /rsvp/[token] page outside the auth gate, SSR-loads the snapshot
- Client store wires publishEvent/unpublishEvent to the server, syncs
  snapshot updates after edits, and deletes the snapshot on event delete
- DetailView polls GET /events/:id/rsvps every 30s while open and lets
  hosts import a public response into their local guest list
- generate-env, setup-databases.sh, .env.development, hooks.server.ts,
  package.json wired for local dev
This commit is contained in:
Till JS 2026-04-07 14:27:48 +02:00
parent 980a5e996c
commit 216746721e
27 changed files with 1764 additions and 11 deletions

View file

@ -76,6 +76,7 @@ PLATFORM_SCHEMAS=(
"presi"
"uload"
"cards"
"events"
)
# Check if specific service requested
@ -118,9 +119,12 @@ setup_service() {
cards)
push_schema "@mana/cards-database" "cards"
;;
events|mana-events)
push_schema "@mana/events" "mana-events"
;;
*)
echo -e "${RED}Unknown service: $service${NC}"
echo "Available services: auth, credits, user, subscriptions, analytics, media, todo, traces, presi, uload, cards"
echo "Available services: auth, credits, user, subscriptions, analytics, media, todo, traces, presi, uload, cards, events"
exit 1
;;
esac
@ -150,7 +154,7 @@ done
echo -e "\n${GREEN}Step 3: Pushing schemas${NC}"
echo "--------------------------------------"
for service in auth credits user subscriptions analytics media todo traces presi uload cards; do
for service in auth credits user subscriptions analytics media todo traces presi uload cards events; do
setup_service "$service" 2>/dev/null || true
done