* feat(insights): include all booking question fields in CSV export for non-seated events - For non-seated events: export all custom booking question fields (phone, text, number, select, multiselect, url, checkbox, textarea) excluding system fields - For seated events: preserve existing behavior (only phone-type fields) - Add extractFieldValue helper to handle all field value types - Fix phone fallback logic to only use actual phone field values - Optimize cache lookup with single get() instead of has() + get() * refactor(insights): extract CSV data transformation logic into separate module - Extract manipulation logic from getCsvData into csvDataTransformer.ts - Add extractFieldValue, isSystemField, and other helper functions - Add processBookingsForCsv and transformBookingsForCsv functions - Add comprehensive snapshot tests with dummy data - Tests demonstrate how input becomes output for various scenarios Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * fix(insights): update BookingWithAttendees type to match Prisma query result - Change noShow field type from boolean to boolean | null - Fixes type error TS2345 in InsightsBookingBaseService.ts Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: eunjae@cal.com <hey@eunjae.dev>