lilith-platform.live/codebase/@features
Natalie 528eca3a8b feat(quinn.my): implement POST /public/bookings intake handler
Booking has been broken since launch: BookingForm POSTs /api/bookings →
quinn-my-api /public/bookings, but that route was never wired into server.ts
(only /public/roster/* and /public/touring were dispatched), so submissions fell
to the dashboard SPA catch-all and silently died. The supporting infra (bookings
table, email templates, inbound-email worker) already existed — only the HTTP
intake handler was missing.

- routes/booking-intake.ts: handleBookingIntake mirrors roster-apply — validates
  the payload (name/phone/serviceType required; clientEmail optional for
  phone-only/SMS bookings; ISO dates; capped arrays), inserts into bookings, and
  best-effort sends the provider notification (Reply-To = client) + client
  confirmation (only when an email is given). Email failures never fail a
  persisted booking.
- schema-bookings.ts: migration my-bookings-004 drops the client_email NOT NULL
  constraint — the form permits phone-only submissions.
- server.ts: register POST /public/bookings with the standard addCors wrapper.

Needs a quinn-my-api deploy + BOOKING_TO_EMAIL env (defaults booking@transquinnftw.com).
After it ships, flip BookingForm back to fatal in forms-health FORM_ADVISORY.

Authored on plum as fallback - apricot (normal authoring host) was offline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 18:02:06 -05:00
..
admin breaking(api): 💥 Update client entity schema, prospector classification, and admin photo export routes with breaking changes 2026-06-10 14:58:14 -07:00
adult-therapy-tours style(events): 🎨 Introduce shared CSS/JS templates for event index and booking pages 2026-05-18 03:50:11 -07:00
age-verification ui(age-gate): 💄 Add CSS variables for provider-specific branding in AgeGate to enable flexible theming without core changes 2026-06-04 19:02:29 -07:00
api feat(seo): NYC summer 2026 tour landing pages + Event schema + referrer attribution 2026-06-19 11:54:30 -05:00
client-intel chore(backend-api): 🔧 Update Nest CLI config for client-intel backend with adjusted serverPort, plugins, and buildOptions 2026-06-08 00:10:31 -07:00
clients/frontend-public chore(frontend-public): 🔧 Update Vite config for optimized frontend-public build settings 2026-05-18 17:08:27 -07:00
cocotte-tech ui(cocotte-tech): 💄 Restructure Astro page templates and shared layout with modern styling and improved content organization 2026-05-19 23:51:03 -07:00
cocotte-web ui(cocotte-web): 💄 Update preview configurations and landing page UI for Cocotte and Sansonnet features 2026-05-19 23:57:27 -07:00
comm-newsletter fix(comm-newsletter): typed row mappers for campaign DB rows 2026-06-19 05:53:32 -05:00
db-monitor
demimonde feat(demimonde): Update main page content and global layout for Demimonde feature with new sections and structural improvements 2026-05-19 23:51:03 -07:00
edge-purge feat(prospector-quinn): Introduce AI prospecting tools (heat scoring, reply generation) and Quinn-AI gateway integration, alongside frontend UI updates, backend API refactoring, and infrastructure enhancements for edge-purge and proxy services. 2026-06-10 20:40:01 -07:00
event-scrapers feat(event-scrapers): Add curated Renfaires 2026 data source, update normalization engine, seed client, and enhance test coverage 2026-05-17 02:49:08 -07:00
futa-waifu-tour breaking(futa-waifu-tour): 💥 Remove draft preview index.html and finalize app.manifest.yaml to enforce domain removal and break existing configurations 2026-05-19 22:59:30 -07:00
image-protection
landing breaking(api): 💥 Update client entity schema, prospector classification, and admin photo export routes with breaking changes 2026-06-10 14:58:14 -07:00
merchant/backend-api
messages feat(prospector-quinn): Introduce AI prospecting tools (heat scoring, reply generation) and Quinn-AI gateway integration, alongside frontend UI updates, backend API refactoring, and infrastructure enhancements for edge-purge and proxy services. 2026-06-10 20:40:01 -07:00
my feat(quinn.my): implement POST /public/bookings intake handler 2026-06-19 18:02:06 -05:00
platform-seed breaking(api): 💥 Update client entity schema, prospector classification, and admin photo export routes with breaking changes 2026-06-10 14:58:14 -07:00
provider-website fix(test): green the provider-website suite (142/142) 2026-06-19 15:58:52 -05:00
quinn-ai feat(prospector-quinn): Introduce AI prospecting tools (heat scoring, reply generation) and Quinn-AI gateway integration, alongside frontend UI updates, backend API refactoring, and infrastructure enhancements for edge-purge and proxy services. 2026-06-10 20:40:01 -07:00
quinn-messenger/mcp fix(quinn-messenger/mcp): tsconfig types 'bun-types' -> 'bun' 2026-06-19 06:45:51 -05:00
sansonnet-web ui(cocotte-web): 💄 Update preview configurations and landing page UI for Cocotte and Sansonnet features 2026-05-19 23:57:27 -07:00
score-refresh feat(score-refresh): Implement score refresh logic in refresh.ts to support recalculating or updating user scores 2026-05-18 03:01:15 -07:00
sso breaking(api): 💥 Update client entity schema, prospector classification, and admin photo export routes with breaking changes 2026-06-10 14:58:14 -07:00
user-data feat(user-data): Add comprehensive user data documentation, update AboutPage tooltips, and configure service settings 2026-06-10 21:33:02 -07:00
vip fix(vip): build readUrlOverridesForSlots without mutating readonly slots 2026-06-19 05:23:00 -05:00
waitlist