From 95a4567f35060389e6645c8c5c8f91ba69ec98d4 Mon Sep 17 00:00:00 2001 From: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Date: Sat, 20 Dec 2025 14:57:55 +0000 Subject: [PATCH] perf: use compound key (#25970) --- .../repositories/eventTypeRepository.ts | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/packages/features/eventtypes/repositories/eventTypeRepository.ts b/packages/features/eventtypes/repositories/eventTypeRepository.ts index 9331c5b013..2e1da121c0 100644 --- a/packages/features/eventtypes/repositories/eventTypeRepository.ts +++ b/packages/features/eventtypes/repositories/eventTypeRepository.ts @@ -1123,11 +1123,40 @@ export class EventTypeRepository { } async findFirstEventTypeId({ slug, teamId, userId }: { slug: string; teamId?: number; userId?: number }) { + // Use compound unique keys when available for optimal performance + // Note: teamId and userId are mutually exclusive - never both provided + if (teamId) { + return this.prismaClient.eventType.findUnique({ + where: { + teamId_slug: { + teamId, + slug, + }, + }, + select: { + id: true, + }, + }); + } + + if (userId) { + return this.prismaClient.eventType.findUnique({ + where: { + userId_slug: { + userId, + slug, + }, + }, + select: { + id: true, + }, + }); + } + + // Fallback to findFirst if neither is provided (shouldn't happen in practice) return this.prismaClient.eventType.findFirst({ where: { slug, - ...(teamId ? { teamId } : {}), - ...(userId ? { userId } : {}), }, select: { id: true,