Add tables: (1) payments (e.g. id, userId, eventId, amount, stripePaymentIntentId, status, createdAt); (2) waivers (e.g. id, userId, eventId, signedAt, documentUrl or storage key); (3) attendee_preferences (dietary, accessibility) linked to user/event or ticket. Generate and run Drizzle migration. Align with HA (SSR-OS1: no ticket confirmation until waiver signed)