The CCG booking spreadsheet tab is named 'Occupancy', not 'Sheet1'.
Updated defaults in docker-compose, route, booking-sheet lib, and env example.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add booking-sheet.ts: parses booking spreadsheet, finds first available
bed matching accommodation type, writes guest name across date columns
- Expand registration sheet to columns O-P (Accommodation Venue/Type)
- Webhook now assigns room booking (best-effort) on successful payment
- Send internal notification to contact@ with assignment details and flags
- Confirmation email shows assigned room; updated food/accommodation copy
- Add test script for end-to-end verification
- Add BOOKING_SHEET_ID/NAME to env and docker-compose configs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace Stripe checkout with Mollie payments API. Mollie handles
payment method selection on their hosted checkout (card, SEPA, iDEAL,
PayPal, etc). Simpler auth model — single API key, no webhook secrets.
- Rewrite /api/create-checkout-session for Mollie payment creation
- Rewrite /api/webhook for Mollie status verification flow
- Update google-sheets.ts: stripeSessionId → paymentSessionId
- Remove payment method radio buttons (Mollie shows all methods)
- Update docker-compose env vars
- Swap stripe npm package for @mollie/api-client
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add googleapis for Google Sheets integration
- Create /api/register endpoint to record registrations with "Pending" status
- Update webhook to mark registrations as "Paid" when payment completes
- Add lib/google-sheets.ts with addRegistration and updatePaymentStatus functions
- Update docker-compose.yml with Google Sheets env vars
- Add .env.example documenting required environment variables
Flow: Form submit → Sheet (Pending) → Payment → Webhook → Sheet (Paid)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>