Commit Graph

11 Commits

Author SHA1 Message Date
Jeff Emmett d6e33f12e3 fix: remove Herrnhof Villa from accommodation options
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 11:34:25 -04:00
Jeff Emmett b8567b0f54 feat: add food interest tracking to registration flow
Add "I would like to include food for the week" checkbox to the payment
step with co-producing meals messaging. Track food interest in Google
Sheets as column Q ("Want Food").

- Add wantFood field to RegistrationData interface
- Add interactive food checkbox replacing static note in payment step
- Pass wantFood through register API to Google Sheets
- Expand sheet ranges from A:P to A:Q, add "Want Food" header
- Preserve food column on payment status updates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:42:23 -07:00
Jeff Emmett eaf2c0ac31 fix: require email on registration, BCC contact@ on confirmations, update OG image
- Add required email field to registration form (was missing entirely,
  causing "N/A" emails in booking notifications)
- Pass email through full chain: form → API → Google Sheet → Mollie
  metadata → webhook (with Mollie billingAddress as fallback)
- BCC contact@cryptocommonsgather.ing on all payment confirmation
  emails so team is notified of every successful registration
- Replace OG image with alpine mountain card including event name,
  dates, and URL for better Twitter/social sharing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:58:46 -07:00
Jeff Emmett 45b94e4ed2 feat: auto-assign room bookings on payment and notify contact@
- 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>
2026-03-09 14:04:23 -07:00
Jeff Emmett 4b78d357c0 update: accommodation pricing and confirmation email
- Commons Hub nightly rates: shared €39.20→€39.90, double €50.20→€50.90
- Herrnhof prices now stored as 7-night totals (×7) for correct checkout
- Confirmation email: food text updated, Herrnhof link removed, added office@commons-hub.at for accommodation questions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 10:41:14 -07:00
Jeff Emmett b209f2f14b update: registration - remove food payment, add Herrnhof Villa, extend to 7 nights
- Remove food as a payment option; add note about follow-up email for food
- Restructure accommodation into two venues: Commons Hub and Herrnhof Villa
- Herrnhof Villa options: single, double (3 configs), and triple rooms
- Update event dates from Aug 16-22 to Aug 16-23 (7 nights) across all pages
- Update pricing: Commons Hub €274.40/€351.40, Herrnhof €40-€95 per person
- Update transparency page with new accommodation breakdown and food TBA
- Update API route and confirmation email to match

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 12:37:43 -08:00
Jeff Emmett e007df4959 update: improve registration confirmation email
Add food & accommodation reminder (Hub + Herrnhof), remove
contributions section, note upcoming follow-up emails.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 17:06:09 -08:00
Jeff Emmett 8f59233918 feat: swap Stripe for Mollie payment integration
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>
2026-03-04 14:30:55 -08:00
Jeff Emmett 823102b908 feat: add confirmation emails and Listmonk newsletter sync
- Add nodemailer SMTP integration for payment confirmation emails
  via newsletter@cryptocommonsgather.ing
- Add Listmonk PostgreSQL integration for newsletter subscriber sync
- Update webhook to send confirmation email after Stripe payment
- Add SMTP and Listmonk env vars to docker-compose

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 11:23:21 -08:00
Jeff Emmett 3091c01819 feat: add Google Sheets registration pipeline
- 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>
2026-01-25 09:43:18 +01:00
v0 be3c555aeb Initialized repository for chat Crypto commons gathering
Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
2025-12-02 07:52:37 +00:00