Commit Graph

2 Commits

Author SHA1 Message Date
jhodgkin 0e18f2b5b3 Add n8n webhook notifications for all booking events
Deploy to Dev / Deploy & Smoke Test (push) Successful in 24s
- Extract notify() helper (fire-and-forget, never blocks flow)
- Fire booking_created after INSERT in POST /api/bookings
- Fire contract_signed after PDF stamp in POST /api/bookings/:id/sign
- Add GET /api/bookings/:id/contract to serve signed PDFs
- New env vars: N8N_WEBHOOK_URL, PHOTOGRAPHER_EMAIL, SITE_URL

n8n workflow (LisiLou Booking Notifications, ID c2oyyQyuzMuo1kLw):
  Webhook → Code (routes by event, builds email items) → Send Email (SMTP)
  Handles: booking_created (2 emails), contract_signed, payment_confirmed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-08 21:43:25 -06:00
jhodgkin e824be7e5d Add Node.js/Express API service for booking backend
Build and Deploy / build (push) Failing after 20s
Build and Deploy / deploy (push) Has been skipped
- New api/ service: Express + better-sqlite3, health check at GET /api/health,
  POST /api/bookings stores sessions with all required fields
- Dockerfile with Alpine build deps for native sqlite3 module
- docker-compose.yml: api service with volume mounts for data, signed-contracts, contracts
- nginx.conf: proxy /api/ to api:3001; Immich regex locations remain higher priority
- .gitignore: exclude SQLite db file and signed PDFs from version control

Closes #1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 22:30:18 -06:00