* feat: optimize Prisma queries by replacing findFirst with findUnique where applicable
- Replace findFirst/findFirstOrThrow with findUnique/findUniqueOrThrow for queries using unique constraints
- Maintain existing functionality and error handling behavior
- Focus on queries using primary keys and unique index fields from schema
- Revert problematic changes that caused test failures to maintain stability
Co-Authored-By: benny@cal.com <benny@cal.com>
* revert: exclude API files from Prisma query optimizations per user request
- Reverted all 55 API-related files to their original state
- Kept all non-API Prisma query optimizations intact
- API files include apps/api/v1, apps/api/v2, apps/web/app/api, and packages/app-store/*/api
- Non-API optimizations remain for packages/lib, packages/features, apps/web (non-api), etc.
Co-Authored-By: benny@cal.com <benny@cal.com>
* feat: optimize membership query in attributeUtils to use findUnique with userId_teamId constraint
Co-Authored-By: benny@cal.com <benny@cal.com>
* revert: exclude test files from Prisma query optimizations per user request
Co-Authored-By: benny@cal.com <benny@cal.com>
* revert: revert attributeUtils.ts to use findFirst for test compatibility
Co-Authored-By: benny@cal.com <benny@cal.com>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: benny@cal.com <benny@cal.com>
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
* fix: getBookings for team admins within orgs
* fixup! fix: getBookings for team admins within orgs
* chore: update getUserIdsAndEmailsWhereUserIsAdminOrOwner and remove unused orgId
---------
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
* feat - Restrict same email to create more than 'n' active bookings at a time
* updated checkbookerbookinglimit function
* type fix
* minor change
* import fix
* minor fixes
* back to null on disable
* back
* type check
* managed edge cases
* chore: name changes
* name changes
* fix
* minor change
* changed name
* use default value for maxactivebookingsperbooker, and some minor changes
* disabling bookerbooking limit for recurring event
* disabling bookerbooking limit for recurring event
* type fix
* ui fix and backend eventtype update check
* Add `maxActiveBookingPerBookerOfferReschedule` to schema
* Create `MaxActiveBookingsPerBookerController` and offer reschedule option
* Add offer reschedule to event type form data
* Pass data through to HttpError
* When checking max bookings, return last booking info if applicable
* removed unused code
* minor changes
* update validation
* chore
* Do not check booking limits if rescheduling
* Add data for reschedule
* Add reschedule specific error code
* On maximum booking error, write to booker store reschedule params
* Add translations for error codes
* Write to error message previous booking time
* minor fix
* Write to error message previous booking time
* Type fixes
* Clean up comment
* Refactor eventType update errors
* Typo fix
* Type fix
* Type fix
* Type fix
* Fix test
* Fix test
* Add migration
* Addressed feedback and missed merges
---------
Co-authored-by: romit <romitgabani@icloud.com>
* feat - Restrict same email to create more than 'n' active bookings at a time
* updated checkbookerbookinglimit function
* type fix
* minor change
* import fix
* minor fixes
* back to null on disable
* back
* type check
* managed edge cases
* chore: name changes
* name changes
* fix
* minor change
* changed name
* use default value for maxactivebookingsperbooker, and some minor changes
* disabling bookerbooking limit for recurring event
* disabling bookerbooking limit for recurring event
* type fix
* ui fix and backend eventtype update check
* removed unused code
* minor changes
* update validation
* chore
* Do not check booking limits if rescheduling
* minor fix
* Refactor eventType update errors
* Typo fix
---------
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
* feat: support updating cal video settings in API v2
* chore: update descriptio
* feat: support create event type
* test: add test for updating event type
* test: add test for create event type
* chore: undo openapi
* chore: bump libraries
* Revert "chore: bump libraries"
This reverts commit bdf36d09b021fc531497a7b7ea66ab9c52b7d136.
* chore: bump libraries
---------
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
* feat: split atoms endpoints and add public event type endpoint
* Update ConnectedDestinationCalendars import path across platform/atoms components
* refactor: update BookingResponse import path from platform-libraries to features/bookings
* Move AvailableSlotsType to util.ts and update imports to use GetAvailableSlotsResponse
* Refactor import path for RecurringBookingCreateBody type from libraries to types
* Fix import path for getBookingForReschedule type from platform-libraries to features
* Refactor PublicEventType export location and update import references
* Remove @calcom/platform-libraries dependency from atoms package.json
* chore(deps): update yarn.lock dependencies
* Remove console.log statements and fix indentation in event type hooks
* Migrate event type transformers from platform/libraries to api/v2 directory
* Remove console.log
* Update BookerPlatformWrapper.tsx
* Add script to populate empty team slugs with slugified team names
* Remove vitest imports
* reset platform libraries version
* Remove unused orgId comment from useAtomGetPublicEvent hook params
* Update useApiV2AvailableSlots.ts
* refactor: remove unused exports from lib package index file
* Undo: @SomayChauhan
Add script to populate empty team slugs with slugified team names
* Update booking.tsx
* chore: upgrade @calcom/platform-libraries from 0.0.202 to 0.0.205
* chore: bump @calcom/platform-libraries from 0.0.205 to 0.0.206
* chore: configure babel and jest for node module transpilation in api v2
* fix: type errors
* Revert "chore: configure babel and jest for node module transpilation in api v2"
This reverts commit b2cf172a84fe8953f9497bf6e43874f476fbc04b.
* Update calendars.service.ts
* chore: bump @calcom/platform-libraries from 0.0.208 to 0.0.209
* fix: add proper type definition for calendar busy times to resolve ts-expect-error
* refactor: deprecate v2 old availability endpoints (#21075)
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
* chore: publish platform librareis
* feat: add delegation credential fields to calendar service mock
* chore: update @calcom/platform-libraries from 0.0.211 to 0.0.213
* fix: skip failing calendar integration test
* chore: bump @calcom/platform-libraries from 0.0.213 to 0.0.214
* fix: api/v2 build error
* fix: e2e tests
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
* add rrTimeStampBasis to prisma schema
* add rr time stamp basis setting
* update migration
* add getLuckyUser logic
* add rrTimestampBasis to tests
* add load balancing warning message
* disable load balancing logic
* disable load balancing in event type settings
* add missing translations
* fix UI
* disable load balancing on all team event types
* don't show routing forms in router position
* use correct interval times
* fix variable naming
* fix event type update handler
* add test to booking.test.ts
* add test for getting interval times
* remove not needed prop
* fix label
* improve warning message
* fix removing maxLeadTreshold
* fix typo
* fix disabling maxLeadThreshold
* add back missing translation
* improve rr reset interval label
* fix rr_load_balancing_disabled text
* improve test
* fix description
* only use rrTimestampBasis in weights round robin
* fix dropdown width
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2025-06-12 11:37:38 +01:00
Joe Au-YeungGitHubAlex van Andelcubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* Create `VerificationTokenRepository`
* Update the verification token expiry when resending the invite
* Handle error
* Fix import
* Get past unique constraint
* Update packages/trpc/server/routers/viewer/teams/resendInvitation.handler.ts
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Update packages/lib/server/repository/verificationToken.ts
Update set expiry time
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* Type fix
* Update how we're fetching the token
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2025-06-11 22:21:58 +00:00
Benny JooGitHubbenny@cal.com <benny@cal.com>Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>benny@cal.com <benny@cal.com>
devin-ai-integration[bot]GitHubbenny@cal.com <benny@cal.com>Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>benny@cal.com <benny@cal.com>hbjORbj
* move away from merging twice
* move to use loggedIn Router directly
* fix router outputs types
* fix mocks in create button with teasm tests
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* charge free users for SMS to CA an US
* allow custom template for free users
* fix backend + some UI fixes
* make text editable
* rename back to needsTeamsUpgrade
* add twilio webhook handler tests
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* fix deleting reminders
* schedule reminders if iffy is disabled
* fix unit test
* clean up code
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2025-05-21 12:35:31 +00:00
sean-brydonGitHubsean@cal.com <sean@cal.com>sean@cal.com <sean@cal.com>sean@cal.com <sean@cal.com>Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* inital pbac setup
* fix tests
* docs intro
* more docs
* add comments in docs
* revert pr_todo
* update to use action + custom as defaults
* use enums
* move to change user role + multi check
* add beforeEach import
* docs: add PERMISSIONS.md documenting team/organization role usages
Co-Authored-By: sean@cal.com <sean@cal.com>
* docs: add permission string alternatives for helper functions
Co-Authored-By: sean@cal.com <sean@cal.com>
* feat: enhance permission registry and default role permissions
Co-Authored-By: sean@cal.com <sean@cal.com>
* add routers
* add hooks + rsc. Also adjsuted test to use prismock
* make hooks type safe + add some tests
* add a permission context - trpc router to populate context
* update docs
* explore global and default roles member,admin,owner
* fix tests
* use kysley and abstract uril
* tidy up
* update trpc to use pbac route in endpoint + distinct on teamId
* make transform util
* remove role service dependancy from permission check class
* checkTeamId fall back to orgId if team is parent
* todos
* remove manual migrations to launch softly
* address feedback
* move permission checks to a repo
* move role service database calls to repo. improve mocks
* update tests to have describe import
* fix types
* remove router that is not used to pass build
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-05-20 15:22:52 +01:00
devin-ai-integration[bot]GitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>alex@cal.com <me@alexvanandel.com>
* perf: Better perf by going event type first w/o booking
* minor fixup
* Use an IN with children instead of an OR with parent
* Turns out we already had a variable with the right values
* Make sure the right event type is used even for children
* few fixes
* Full select is needed to keep typings working
* Fix last remaining issue
* Remove unused return statement
* Fix return from fn instead of continuing the loop
* Ensure userId is set for existing records on update
* ensure that serviceAccountKey is only retrieved whenb assked
* Add credits section to billing
* create seperate router for credits
* add stripe checkout session
* schema changes + code improvements
* rename to creditBalance
* custom quantify input with error message
* add checkout session completed webhook endpoint
* fix typo
* UI fixes
* add payCredits handler
* add error toast message
* allow scheduling sms up as close to 15 minutes in the future
* schedule at most 2 hours in advance
* webhook to pay for sent sms
* continued work on twilio callback
* code clean up
* further implementation for credit handling
* add migration
* object as param for scheduleSMS
* object as param for sendSMS
* fix TrpcSessionUser imports
* fix imports
* add db changes
* add cron job for price setting
* twilio status callback to create expense log
* remove unused code
* set up low credit balance email
* fixes for buying credits
* fixes in api/twilio/webhook
* add test to save credits to credits balance
* fix typos
* add new helper function chargeCredits
* expand twilioProvider
* fix type errors
* adjust tests
* type errors
* clean up
* clean up
* fix subscription active check
* remove some user/org related code
* more changes to remove user/org support
* send emails seperatly to admins
* fixes for team billing page
* fix stripe success url
* fixes to creating expense log
* email imrovements and more
* get monthly team price from stripe
* fix import
* fix monthly credits calculation
* finsih low credit balance warning email
* credit balance limit reached email
* create CreditService
* cancel SMS and send as email instead
* add messageDispatcher
* fix type error
* fix type error
* fix type error
* fix import
* fix unit test
* clean up twilioProvider
* clean up chckSmsPrices/route
* add missing translations
* add skeleton loader
* add admin check to get handler
* code clean up + fixes
* improve scheduling with fallback
* fix type error
* add bookingUid to handleSendingSMS
* add unit tests for creditService
* add more tests to credit-service.test.ts
* add test for cancelScheduledMessagesAndScheduleEmails
* fix test and type error
* add back resolve
* fix empty resolve
* adjust limitReachedAt logic
* address mrge comment on styling
* add getAdminMembership to repository
* twilio/webhook clean up (feedback)
* feedback - clean up
* remove todo comment
* clean up twilio/webhook
* code clean up
* add use client
* add createOneTimeCheckout to stripe service
* refactor repository pattern
* small fixes + clean up
* fix type error
* add missing import
* fix hasAvailableCredits for user
* force-dynamic
* rename credits to creditBalance
* fix stripe import
* remove not needed code
* fix e2e tests
* improve low balance warning email
* dynamic-import CreditService
* index.ts
* add user logic checkSmsPrices endpoint
* fix e2e tests
* remove dynamic import CreditService
* Revert "remove dynamic import CreditService"
This reverts commit e272978a7ff3fc5a04139e656c9f8d2c84a40dda.
* no need to dynamic-import credit service
* Revert "no need to dynamic-import credit service"
This reverts commit ba5ae488d08979a65fb47b5d0722cda9f45d6ea0.
* fix twilio webhook
* add userId support in checkout.session.completed
* clean up code
* only select id in getAdminMembership
* revert billing/package.json
* fix type checks
* fix type checks
* adjust hasAvailableCredits function
* fixes for checkout sessioned completed
* add UI for user
* fix type errors
* adds requires credits badge
* remove team check from update.handler
* clean up inlcude statements
* fix credit-service tests
* add tests
* fix type errors
* fix type errors
* fix and add tests
* imrove badge
* code clean up
* add reminderScheduler test
* add additional credits as title
* fixes for warningSentAt and limitReachedAt
* mock stripe
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: hbjORbj <sldisek783@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2025-05-13 15:55:19 +02:00
devin-ai-integration[bot]GitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>benny@cal.com <benny@cal.com>
* Add credits section to billing
* create seperate router for credits
* add stripe checkout session
* schema changes + code improvements
* rename to creditBalance
* custom quantify input with error message
* add checkout session completed webhook endpoint
* fix typo
* UI fixes
* add payCredits handler
* add error toast message
* allow scheduling sms up as close to 15 minutes in the future
* schedule at most 2 hours in advance
* webhook to pay for sent sms
* continued work on twilio callback
* code clean up
* further implementation for credit handling
* add migration
* object as param for scheduleSMS
* object as param for sendSMS
* fix TrpcSessionUser imports
* fix imports
* add db changes
* add cron job for price setting
* twilio status callback to create expense log
* remove unused code
* set up low credit balance email
* fixes for buying credits
* fixes in api/twilio/webhook
* add test to save credits to credits balance
* fix typos
* add new helper function chargeCredits
* expand twilioProvider
* fix type errors
* adjust tests
* type errors
* clean up
* clean up
* fix subscription active check
* remove some user/org related code
* more changes to remove user/org support
* send emails seperatly to admins
* fixes for team billing page
* fix stripe success url
* fixes to creating expense log
* email imrovements and more
* get monthly team price from stripe
* fix import
* fix monthly credits calculation
* finsih low credit balance warning email
* credit balance limit reached email
* create CreditService
* cancel SMS and send as email instead
* add messageDispatcher
* fix type error
* fix type error
* fix type error
* fix import
* fix unit test
* clean up twilioProvider
* clean up chckSmsPrices/route
* add missing translations
* add skeleton loader
* add admin check to get handler
* code clean up + fixes
* improve scheduling with fallback
* fix type error
* add bookingUid to handleSendingSMS
* add unit tests for creditService
* add more tests to credit-service.test.ts
* add test for cancelScheduledMessagesAndScheduleEmails
* fix test and type error
* add back resolve
* fix empty resolve
* adjust limitReachedAt logic
* address mrge comment on styling
* add getAdminMembership to repository
* twilio/webhook clean up (feedback)
* feedback - clean up
* remove todo comment
* clean up twilio/webhook
* code clean up
* add use client
* add createOneTimeCheckout to stripe service
* refactor repository pattern
* small fixes + clean up
* fix type error
* add missing import
* fix hasAvailableCredits for user
* force-dynamic
* rename credits to creditBalance
* fix stripe import
* remove not needed code
* fix e2e tests
* improve low balance warning email
* dynamic-import CreditService
* index.ts
* fix e2e tests
* remove dynamic import CreditService
* Revert "remove dynamic import CreditService"
This reverts commit e272978a7ff3fc5a04139e656c9f8d2c84a40dda.
* no need to dynamic-import credit service
* Revert "no need to dynamic-import credit service"
This reverts commit ba5ae488d08979a65fb47b5d0722cda9f45d6ea0.
* only select id in getAdminMembership
* revert billing/package.json
* fix type checks
* fix type checks
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: hbjORbj <sldisek783@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>