* Add `hideCalendarEventDetails` to DB
Co-authored-by: Alex van Andel <emrysal@users.noreply.github.com>
* Add option to hide calendar event details
* Pass `hideCalendarEventDetails` to event object
* Add to API
* Add to CalendarEvent class
* Pass `hideCalendarEventDetails` to calendar services
* Adjust test
* fix: move `hideCalendarEventDetails` to `api/v2/event-types_2024_06_14` and remove from older versions
- Added `hideCalendarEventDetails` to `api/v2/event-types_2024_06_14`
- Removed `hideCalendarEventDetails` from `api/v1` and `api/v2/event-types_2024_04_15`
* fix: calEventRaw is undefined (use event instead)
* chore: Remove debug artifact
* fix: description id + update to copy
* fix: Attempt at fixing type error
* Add hideCalendarEventDetails to test builder
---------
Co-authored-by: Alex van Andel <emrysal@users.noreply.github.com>
Co-authored-by: Somay Chauhan <somaychauhan98@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* added bookerLayouts
* added requiresConfirmation
* added tests
* undo extra changes
* undo extra change
* fixed imports
* added requiresBookerEmailVerification
* added hideCalendarNotes
* added lockTimeZoneToggleOnBookingPage
* added eventTypeColor
* undo extra changes
* added seats
* added requiresConfirmationWillBlockSlot to requiresConfirmation
* refactor: Implement BaseEventType class to avoid duplication across EventType input/output classes
## D-R-Y ##
* temp-fix: will revert later
* Correct placement of users array from EventTypeOutput to TeamEventTypeOutput
* Refactor: Shifted transformation logic to controllers using interceptors and pipes for a cleaner service layer.
* small fix
* Refactor: Moved transformation logic from service to controller using interceptors and pipes
** organisations/event-types
* feat: adde tests for `validateEventTypeInputs`
* fix: failing test
* fix: layout validator
* renamed blockCalendarForUnconfirmedBookings to blockUnconfirmedBookingsInBooker
* testing changes
* added disabled state
* fix merege conflict
* renamed requiresConfirmation to confirmationPolicy
* renamed OutputEventTypesResponseInterceptor to OutputTeamEventTypesResponseInterceptor
* renamed `darkThemeColor` -> `darkThemeHex` and `lightThemeColor` -> `lightThemeHex`
* renamed `eventTypeColor` -> `color`
* changed `requiresConfirmation` -> `confirmationPolicy`
* added tests for disabled state
* added class-validators to `disabled?: false`
* Revert: Split create and update input/output classes
* feat: Refactor responses to use DTOs with plainToClass for explicit property control
• Updated all endpoints to return response DTOs (e.g., CreateTeamEventTypeOutput, GetTeamEventTypeOutput) to ensure consistent Swagger documentation generation.
• Introduced plainToClass for transforming responses, enabling explicit control over which properties are returned in the response, following Morgan’s recommendation.
• Replaced generic HandlerResponse type with class-validator based DTOs for each endpoint, ensuring TypeScript enforces correct response structure.
• Applied strategy: "excludeAll" to limit response properties to only those explicitly defined in the DTO, preventing unintended fields from being included in the API responses.
* added pipes to transform output data
* add clean script to platform-types package.json
* added customName
* added destination calendar
* fixed type errors
* added useDestinationCalendarEmail
* refactor: api-reqest and api-response
* Update event-type.output.ts
* fixed errors
* Update yarn.lock
* added some missed properties to output
* Update constants.ts
* removed return type
* fixed some type errors
* reuse types
* Improve readability of validation functions
* Update CHANGELOG.md
* chore: post publish platform libraries
* Update documentation.json
* fix: reset platform libraries to 0.0.0
* fixup! fix: reset platform libraries to 0.0.0
* Update event-type.tranformed.ts
---------
Co-authored-by: supalarry <laurisskraucis@gmail.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>
* refactor: define inputs and outputs by separating default and custom fields
* refactor: event type api <-> internal transformers
* refactor: v2 use refactored libraries to transform input and output booking fields
* refactor: dont allow custom slugs with default reserved slugs
* refactor: input service store only specific default system fields
* refactor: atoms display only specific default system fields
* refactor: delete unused system field constants
* fix: tests
* fix: old event types
* fix: imports
* fix: import
* chore: release libraries and use v2 with them
* fix: unit tests
* refactor: push email in case of missing phone
* refactor: satisfies check for event-type locations
* update calendar logic to handle multiple calendars
* add method to link calendar to credential
* remove logs
* update platform libraries
* update calendar logic to handle multiple calendars
* update credentials repository
* add selected calendars repository to destination calendars module
* add method to get user selected calendars and rename fn
* chore: PR feedback
* resolve merge conflicts
* fixup
* make sure we cover all edge cases for apple calendar
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
* add class-transformer package to type
* update input dtos for get busy times and fix type issue
* fixup
---------
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
* added lockedSMS to future routes
* add orgMigrations routes to future
* correct metadata
* small fix
* add orgMigrations to future
* Move components to client components
* Remove tRPC element from edit user RSC
* Get username for meta
* Remove suspense query
* Remove orgMigrations from app router
* Type fix
* Revert "Remove suspense query"
This reverts commit eadd814f6e4a5d6856d9218342b7909c22fe62c6.
* Handle suspenseQuery in app router
* User edit page, fetch data server side
* Update yarn.lock
* Export getFixedT
* Set PageWrapper as root layout for settings
* Settings Layout accepts strings for shell heading
* Add OOO to app router settings
* Refactor layout for my-account pages
* Remove instances of pages router from my-account
* Refactor security pages
* Add billing to app router
* Add admin API link to layout
* Add api keys page
* Webhooks WIP
* Refactor SettingsHeader to client component
* Add webhook pages
* Refactor API keys page
* Add admin app page
* Type fix
* fix types
* fix developer/webhooks/[id] param value type error
* remove unnecessary code
* do not pass t prop to CreateNewWebhookButton
* fix type errors in webhook-edit-view
* fix the remaining type errors
* do not use prisma directly in generateMetadata
* remove use client if unnecessary
* Remove unused shell heading from SettingsLayoutAppDir
* improve metadata
* fix billing page
* fix import in settings/teams
* Use next `notFound()`
* fix type check
* fix type check
* remove unused code
* Fix calendar setting page
* Separate settings pages into route groups
* Refactor admin settings pages
* Remove meta instance from billing page route
* Update settings layoutAppDir
* Refactor developer settings pages
* Refactor out of office
* Refactor my account settings
* Refactor admin api page
* Refactor security pages
* Type fix
* fix styling in settings layout
---------
Co-authored-by: Somay Chauhan <somaychauhan98@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Benny Joo <sldisek783@gmail.com>
* fix: use `userPhone` instead of `phone` for switch case
Currently this switch case never gets to the last case ("phone") as the type expected is wrong.
Here the type may have value `userPhone` and not `phone`.
* fix another case
---------
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
* feat: Add rescheduledBy & canceledBy fields in the DB
* fix: type check
* fix: type check
* fix: use session user email for reschedule
* fix: unit test
* feat: db field email validation
* feat: rescheduledBy and cancelledBy in webhooks
* revert unrelated changes.
* make session user secondary, default to Anonymous
* if condition not required
* Make cancelledBy optional
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
* update cancel booking type
* fix: update cancelledBy in db when requesting reschedule
* remove default value for fields
* fix: type check
* feat: manage fields via api v1
* fix: add fields in booking read api v1
* test: expand to cover new fields
* fix: use cancelledBy param on booking page
---------
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* refactor: have system and user booking fields schemas and united schema
* fix: event-types output service filter out system booking fields for response
* chore: v2 update platform-libraries to 0.0.25
* chore: platform-libraries export types and update changelog
* chore: add updated lock file
* chore: platform-libraries export updateNewTeamMemberEventTypes
* chore: platform-libraries export updateNewTeamMemberEventTypes
* chore: v2 api bump platform-libraries to 0.0.22
* fix: add created managed user to assignAllMembers: true team event-types
* fix: add created organizations user to assignAllMembers: true team event-types
* refactor: organization teams chose if team creator is auto-accepted
* refactor: managed users have only 2 default event types with video
* refactor: lowercase schedulingType for creating team event-types
* refactor: lowercase schedulingType for creating team event-types
* feat: separate platform teams by OAuth client
* swagger regenerate
* refactor: delete platform team when oauth client deleted
* revert: keep 4 default event-types
* fix: tests && merge of main into this branch
* fix: typecheck
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
* fix: dont check OrganizationSettings.orgAutoAcceptEmail uniqueness for platform teams
* feat: display organizationId in OAuthClientCard
* feat: ApiAuthStrategy handle oauth credentials
* refactor: clean up ApiAuthStrategy test
* refactor: use ApiAuthGuard in OauthClientsUsersController and OAuthFlowController
* fix: copying org id
* refactor: more specific error message when api auth
* refactor: auto accept team creator membership
* feat: useTeamEventType and useTeamEventTypes hooks
* refactor: make team event-types public & searchable by eventSlug
* feat: include host name in team event-types hosts response
* fix: isFixed=true by default for COLLECTIVE event hosts
* fix: useTeamEventType eventSlug access
* feat: BookerPlatformWrapper enable team events by exposting orgId and teamId props
* refactor: provide orgId in atoms context
* refactor: use orgId from context in team event-types hooks
* refactor: return teams in useMe
* chore: examples app teams setup
* Revert "refactor: return teams in useMe"
This reverts commit de992ddc9af6ee9a2111938069f5b9c34cc2d8ea.
* Revert "chore: examples app teams setup"
This reverts commit 0766aa21acc25efa2361d38c3f87ddba773a0245.
* feat: useTeams hook
* chore: setup examples app with team event-type
* fix: small fixes
* swagger
* Revert "refactor: provide orgId in atoms context"
This reverts commit f053a498ee6f8fa8ece5ec8d8630c59eda8873e3.
* feat: orgId in atoms context
* feat: PlatformBilling guard
* chore: delete test of the deleted oauth-client-credentials.guard
* refactor: org event-types collective events isFixed always true and priority medium
* refactor: org event-types COLLECTIVE response ignore isFixed and priority as they are same
* fix: organizations event-types e2e
* fix: billing guard
* refactor: tests cleanup
* fix: platform plan guard spec
* refactor: e2e test cleanup
* seed error if not team
* refactor: rename authenticateApiKey to authenticateBearerToken
* refactor: transforming response hosts
* refactor: rename findUniqueByMatchingAutoAcceptEmail to findUniqueNonPlatformOrgsByMatchingAutoAcceptEmail
* refactor: rename findUniqueByMatchingAutoAcceptEmail to findUniqueNonPlatformOrgsByMatchingAutoAcceptEmail
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>