* wip
* Add preview mode in router
* only fetch bookings of this month for weighted rr
* test set up
* only get bookings of current month
* reverts test setup
* first changes for weight adjustments
* reset booking count + adjust calibration
* depreciate weightAdjustment
* get only bookings created this month
* fix typo
* make sure createdAt for hosts is correct
* use earliest possibel date as fallback
* add missing createdAt date to tests
* fix typo
* clean up changes in tests
* fix typo
* change end date to current date
* fix: Fall back to empty host array when no hosts are found
* fix: Restructure code a little
* fixed test, incorrectly used now outdated var
* perf: remove Dayjs from getLuckyUser
* Refactor getHostsWithCalibration for optimised performance, intentionally break test as findMany is always an array
* Better mock for host.findMany
* Remove team-event-types.test.ts, move to appropriate package
* TypeScript cannot auto-infer that an array is non-empty when assigning to a var
* fix: Type Fixes and DistributionMethod enum add
* Optimise tests
* Added test to show that bookings made before a newHost was added affect the lucky user result
* Throw error when the usersWithHighestPriority is empty, which should never happen
* WIP
* remove comment
* update migrations
* get attributes weights and virtual queue data
* use attribute weights and use bookings of virtual queue only
* clean up migrations
* Add shortfall column and add tests
* code clean up from feedback
* wrapper function for getLuckyUser
* code clean up
* fetch routingFormResponse in handleNewBooking
* fix type errors
* fix type errors in tests
* fix getAttributesQueryValue import for tests
* fix totalWeight
* add test for attributes weights and virtual queues
* clean up code
* add test for prepareQueuesAndAttributesData
* remove console.log
* use lazy import
* Add more tests and more columns to matching members queue
* fix issue from merge
* always send usersAndTheirBookingShortfalls
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* only fetch bookings of this month for weighted rr
* test set up
* only get bookings of current month
* reverts test setup
* first changes for weight adjustments
* reset booking count + adjust calibration
* depreciate weightAdjustment
* get only bookings created this month
* fix typo
* make sure createdAt for hosts is correct
* use earliest possibel date as fallback
* add missing createdAt date to tests
* fix typo
* clean up changes in tests
* fix typo
* change end date to current date
* fix: Fall back to empty host array when no hosts are found
* fix: Restructure code a little
* fixed test, incorrectly used now outdated var
* perf: remove Dayjs from getLuckyUser
* Refactor getHostsWithCalibration for optimised performance, intentionally break test as findMany is always an array
* Better mock for host.findMany
* Remove team-event-types.test.ts, move to appropriate package
* TypeScript cannot auto-infer that an array is non-empty when assigning to a var
* fix: Type Fixes and DistributionMethod enum add
* Optimise tests
* Added test to show that bookings made before a newHost was added affect the lucky user result
* Throw error when the usersWithHighestPriority is empty, which should never happen
* WIP
* remove comment
* update migrations
* get attributes weights and virtual queue data
* use attribute weights and use bookings of virtual queue only
* clean up migrations
* code clean up from feedback
* wrapper function for getLuckyUser
* code clean up
* fetch routingFormResponse in handleNewBooking
* fix type errors
* fix type errors in tests
* fix getAttributesQueryValue import for tests
* fix totalWeight
* add test for attributes weights and virtual queues
* clean up code
* add test for prepareQueuesAndAttributesData
* remove console.log
* use lazy import
* use findUnique
* add fallback weight
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fix: skip sending webhook in case of duplicate response
* fix: type err
* fix: tests
* refactor: only check email
* fix: type err
* chore: changed it to 60 min
* fix: use lowercase
* perf: routing forms loading time
* chore: add TODO
* chore
* chore: add type
* chore: use Promise.all
* fix: type err
* fix: fetch id
* refactor: don't fetch team
* chore: add name
* move types to types file
* Create salesforce routing form components
* Save salesforce data to routing form
* Fixes
* Add event type service
* Change commenting
* Pass data from routing form to CRM
* Init Salesforce routing form booking form handler
* Salesforce find user associated with lookup field
* Add looking up the contact owner
* If salesforce is disabled then don't change the Salesforce option
* Small refactor
* Refactor getting event type app metadata
* Refactor eventType service
* Type fix
* Clean up
* Add translations
Co-authored-by: Alex van Andel <emrysal@users.noreply.github.com>
---------
Co-authored-by: Alex van Andel <emrysal@users.noreply.github.com>
* only fetch bookings of this month for weighted rr
* test set up
* only get bookings of current month
* reverts test setup
* first changes for weight adjustments
* reset booking count + adjust calibration
* depreciate weightAdjustment
* get only bookings created this month
* fix typo
* make sure createdAt for hosts is correct
* use earliest possibel date as fallback
* add missing createdAt date to tests
* fix typo
* clean up changes in tests
* fix typo
* change end date to current date
* fix: Fall back to empty host array when no hosts are found
* fix: Restructure code a little
* fixed test, incorrectly used now outdated var
* perf: remove Dayjs from getLuckyUser
* Refactor getHostsWithCalibration for optimised performance, intentionally break test as findMany is always an array
* Better mock for host.findMany
* Remove team-event-types.test.ts, move to appropriate package
* TypeScript cannot auto-infer that an array is non-empty when assigning to a var
* fix: Type Fixes and DistributionMethod enum add
* Optimise tests
* Added test to show that bookings made before a newHost was added affect the lucky user result
* Throw error when the usersWithHighestPriority is empty, which should never happen
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Add fallback
* Support attribute query fallback
* Refactor
* Add tests and cleanup SingleFofrm
* small text fixes
* With fallback in picture, we dont throw error in preview now instead we capture errors and show them gracefully
* Get attribute logic preview working without saving Fixes CAL-4582
* Abstract useRoutes out
* Update e2e
* Dont define Page component again and again
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* chore: Add Sentry perf tracing
* Just to build
* perf: Add Sentry perf tracing
* Removed the extra integrations tracing config
* Got spans working
* Now only tracing individual endpoints
* Removed check for booking event type
* Fixed types
* Added back for spans
* Consolidate sentry imports
* Added more traces
* Moved the start of the span
* wip virtual list for reassignemnt
* order in alpha and prio order
* loading state
* add flex shrink so status symbol doesnt move
* add gap to each item to make hovering not feel squished
* a11y indexing tab group
* useInViewObserver hook and move to lib
* use correct intersection target
* fix type errors
* remove type
* POC working with no TS error
* cleanup
* Fix query booking
* Simplify things
* Support rerouting to different event
* self-review fixes
* Some improvements
* add more tests
* Remove members relation query
* Udits feedback
* Dont show CTAs when non-eventTypeRedirectUrl action route is chosen
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* moved listSchedules to schedule repository
* Create EventAvailabilityTabPlatformWrapper.tsx
* Revert "moved listSchedules to schedule repository"
This reverts commit b5feacfabbadbf9d75eb205dfad8f70b7773a5cb.
* fix: active state of tabs items
* added event availability platform wrapper
* Update event-types.tsx
* better types
only pick the types we need and omit the rest
* fix: type-check failing
---------
Co-authored-by: Morgan Vernay <morgan@cal.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
* add feature to change host schedule
* update for type-check:ci
* Update SingleForm.tsx for linterr
* update as per design review
* update for rerendering
* migration files
* On Delete set null for schedule
if schedule is deleted, no need to delete the host
* updated schema
* added testcases
* checking permissions before
* updated for comments
* update for initial value
* updated and cleanup
* set initial value
* update after merge
* updated nit style
* update for console warning and added comments
* nit/chore
* chore
* update for typechecks
* update for scheduleId param after merge
* update after merge or new changes in metadata.config
* update after weights functionality
* updated description text and column name as per review suggestion
* resolved merge conflicts
* fix typecheck due to changes in getScheduleSchema
* update after merge having refactor
* update refactored EventTypeWebWrapper after merge
* updated props
* updated trpc err code and added log
* update due to refactor in EventAvailabilityTab
* perf: Optimise TS type + select only the data that's needed for a specific function
---------
Co-authored-by: Amit Sharma <74371312+Amit91848@users.noreply.github.com>
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* fixed error in advanced tab atom build
-- used `DOMPurify` instead of `sanitize-html`
* hide BookerLayoutSelector for platform and removePlatformClientIdFromEmail
* fixup! Merge branch 'main' into event-advanced-platform-wrapper
* undo linting changes
* undo linting changes
* fix: active state of tabs items
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>
* remove outdated translations for insights
* use i18n strings for insights
* use i18n strings for routing forms
* use i18n strings for apps store
* fix more pages
* refactor
* fix
* remove references to /pages for sso, setup, signin pages in /auth
* remove references to pages for insights
* remove references to pages for d
* remove references to pages for signup
* add page for /future index page
* fix routing-forms
* fix
* add missing defaults
* use getServerSessionForAppDir instead
* fix apps/[slug]/[...pages]
* fix metadata in apps/slug/pages
* refactor
* refactor
* remove duplicate code for PageProps
* remove references to pages for /reschedule
* fix
* fix routing forms
* type fix
* fix routing forms again
* revert changes for app/slug/pages
* revert
* revert changes in yarn lock
---------
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* fix: fixed the flaky tests that failed maximum times
* Update action-based.e2e.ts
* another
* add
* add another
* update
* fix
* add
* fix
* update
* update and add
* fix
* update
* update
* chnages
* chore: updates
* reafactor and following best practice
* fix
* add and update
* update
* update and fix
* fix type
* another test
* update
* Update organization-invitation.e2e.ts
* refactor and update
* fix
* final update
* Remove use of location from FormBuilder
* Add tests
* FormBuilderField and BookingFields tests
* More tests
* Remove always true if condition
* Fix ui import mockig that got broken after the last merge