diff --git a/apps/backend/prisma/court.prisma b/apps/backend/prisma/court.prisma index 0f23120..128f87e 100644 --- a/apps/backend/prisma/court.prisma +++ b/apps/backend/prisma/court.prisma @@ -85,6 +85,7 @@ model CourtBooking { endTime String @map("end_time") @db.VarChar(5) customerName String @map("customer_name") @db.VarChar(120) customerPhone String @map("customer_phone") @db.VarChar(30) + customerEmail String? @map("customer_email") @db.VarChar(254) status CourtBookingStatus @default(CONFIRMED) createdAt DateTime @default(now()) @map("created_at") updatedAt DateTime @updatedAt @map("updated_at") @@ -107,6 +108,7 @@ model CourtBookingLog { newStatus CourtBookingStatus @map("new_status") customerName String @map("customer_name") @db.VarChar(120) customerPhone String @map("customer_phone") @db.VarChar(30) + customerEmail String? @map("customer_email") @db.VarChar(254) changedAt DateTime @default(now()) @map("changed_at") @@map("court_booking_logs") diff --git a/apps/backend/prisma/migrations/20260602220943_add_customer_email/migration.sql b/apps/backend/prisma/migrations/20260602220943_add_customer_email/migration.sql new file mode 100644 index 0000000..2910e30 --- /dev/null +++ b/apps/backend/prisma/migrations/20260602220943_add_customer_email/migration.sql @@ -0,0 +1,14 @@ +/* + Warnings: + + - You are about to drop the `onboarding_requests` table. If the table is not empty, all the data it contains will be lost. + +*/ +-- AlterTable +ALTER TABLE "court_booking_logs" ADD COLUMN "customer_email" VARCHAR(254); + +-- AlterTable +ALTER TABLE "court_bookings" ADD COLUMN "customer_email" VARCHAR(254); + +-- DropTable +DROP TABLE "onboarding_requests"; diff --git a/apps/backend/src/emails/booking-confirmation.ts b/apps/backend/src/emails/booking-confirmation.ts new file mode 100644 index 0000000..0aa7e42 --- /dev/null +++ b/apps/backend/src/emails/booking-confirmation.ts @@ -0,0 +1,288 @@ +type BookingEmailData = { + bookingCode: string; + complexName: string; + date: string; + startTime: string; + endTime: string; + courtName: string; + sportName: string; + customerName: string; + price?: number; +}; + +function formatFriendlyDate(isoDate: string): string { + const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(isoDate); + if (!match) return isoDate; + + const date = new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3])); + + const weekday = new Intl.DateTimeFormat('es-AR', { weekday: 'long' }).format(date); + const day = date.getDate(); + const month = new Intl.DateTimeFormat('es-AR', { month: 'long' }).format(date); + + return `${weekday.charAt(0).toUpperCase() + weekday.slice(1)}, ${day} de ${month}`; +} + +const BASE_STYLES = ` + body { + margin: 0; + padding: 0; + background-color: #f4f4f5; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + } + * { + box-sizing: border-box; + } +`; + +function wrapLayout(content: string) { + return ` + + + + + Playzer + + + + + + + +
+ + ${content} +
+
+ +`; +} + +function headerSection() { + return ` + + + Playzer + + `; +} + +function divider() { + return ` + + + + + + +
 
+ + `; +} + +function dateTimeBlock(date: string, startTime: string, endTime: string): string { + const friendlyDate = formatFriendlyDate(date); + + return ` + + + + + + +
+

+ ${friendlyDate} +

+

+ ${startTime} — ${endTime} +

+
+ + `; +} + +export function bookingConfirmationHtml(data: BookingEmailData): string { + const formattedPrice = + data.price !== undefined && data.price > 0 + ? new Intl.NumberFormat('es-AR', { + style: 'currency', + currency: 'ARS', + maximumFractionDigits: Number.isInteger(data.price) ? 0 : 2, + }).format(data.price) + : undefined; + + const content = ` + ${headerSection()} + + +

+ Reserva confirmada +

+

+ ${data.complexName} +

+ + + + + + ${dateTimeBlock(data.date, data.startTime, data.endTime)} + + + + ${divider()} + + + + + ${detailRow('Código', `${data.bookingCode}`)} + ${detailRow('Cancha', `${data.courtName} — ${data.sportName}`)} + ${detailRow('Cliente', data.customerName)} + ${formattedPrice ? detailRow('Precio', formattedPrice) : ''} +
+ + + + ${divider()} + + + +

+ Presentá el código de reserva al llegar al complejo. +
+ Si necesitás cancelar o modificar, contactate directamente con el complejo. +

+ + + + + +

+ Playzer — Reserva de canchas online +

+ + `; + + return wrapLayout(content); +} + +export function bookingCancelledHtml(data: BookingEmailData): string { + const content = ` + ${headerSection()} + + +

+ Reserva cancelada +

+

+ ${data.complexName} +

+ + + + + + ${dateTimeBlock(data.date, data.startTime, data.endTime)} + + + + ${divider()} + + + +

+ La reserva ${data.bookingCode} + fue cancelada. Si tenés dudas, contactate con el complejo. +

+ + + + + + + ${detailRow('Cancha', `${data.courtName} — ${data.sportName}`)} + ${detailRow('Cliente', data.customerName)} +
+ + + + + +

+ Playzer — Reserva de canchas online +

+ + `; + + return wrapLayout(content); +} + +export function bookingNoShowHtml(data: BookingEmailData): string { + const content = ` + ${headerSection()} + + +

+ Reserva no concretada +

+

+ ${data.complexName} +

+ + + + + + ${dateTimeBlock(data.date, data.startTime, data.endTime)} + + + + ${divider()} + + + +

+ La reserva ${data.bookingCode} + fue registrada como no concretada por falta de asistencia. +

+ + + + + + + ${detailRow('Cancha', `${data.courtName} — ${data.sportName}`)} + ${detailRow('Cliente', data.customerName)} +
+ + + + + +

+ Playzer — Reserva de canchas online +

+ + `; + + return wrapLayout(content); +} + +function detailRow(label: string, value: string): string { + return ` + + + + + + + +
+ ${label} + + ${value} +
+ + `; +} diff --git a/apps/backend/src/generated/prisma/browser.ts b/apps/backend/src/generated/prisma/browser.ts index 3f8299c..57c9172 100644 --- a/apps/backend/src/generated/prisma/browser.ts +++ b/apps/backend/src/generated/prisma/browser.ts @@ -82,11 +82,6 @@ export type CourtBooking = Prisma.CourtBookingModel * */ export type CourtBookingLog = Prisma.CourtBookingLogModel -/** - * Model OnboardingRequest - * - */ -export type OnboardingRequest = Prisma.OnboardingRequestModel /** * Model PasswordResetRequest * diff --git a/apps/backend/src/generated/prisma/client.ts b/apps/backend/src/generated/prisma/client.ts index a6de1a1..c5e75b2 100644 --- a/apps/backend/src/generated/prisma/client.ts +++ b/apps/backend/src/generated/prisma/client.ts @@ -106,11 +106,6 @@ export type CourtBooking = Prisma.CourtBookingModel * */ export type CourtBookingLog = Prisma.CourtBookingLogModel -/** - * Model OnboardingRequest - * - */ -export type OnboardingRequest = Prisma.OnboardingRequestModel /** * Model PasswordResetRequest * diff --git a/apps/backend/src/generated/prisma/internal/class.ts b/apps/backend/src/generated/prisma/internal/class.ts index 268e76f..b65b374 100644 --- a/apps/backend/src/generated/prisma/internal/class.ts +++ b/apps/backend/src/generated/prisma/internal/class.ts @@ -20,7 +20,7 @@ const config: runtime.GetPrismaClientConfig = { "clientVersion": "7.6.0", "engineVersion": "75cbdc1eb7150937890ad5465d861175c6624711", "activeProvider": "postgresql", - "inlineSchema": "model User {\n id String @id\n name String\n email String\n emailVerified Boolean @default(false)\n image String?\n phone String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n sessions Session[]\n accounts Account[]\n role String @default(\"member\")\n complexes ComplexUser[]\n\n @@unique([email])\n @@map(\"users\")\n}\n\nmodel Session {\n id String @id\n expiresAt DateTime\n token String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n ipAddress String?\n userAgent String?\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([token])\n @@index([userId])\n @@map(\"sessions\")\n}\n\nmodel Account {\n id String @id\n accountId String\n providerId String\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n accessToken String?\n refreshToken String?\n idToken String?\n accessTokenExpiresAt DateTime?\n refreshTokenExpiresAt DateTime?\n scope String?\n password String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([userId])\n @@map(\"accounts\")\n}\n\nmodel Verification {\n id String @id\n identifier String\n value String\n expiresAt DateTime\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([identifier])\n @@map(\"verification\")\n}\n\nmodel Complex {\n id String @id @db.Uuid\n complexName String @map(\"complex_name\")\n physicalAddress String? @map(\"physical_address\") @db.VarChar(200)\n city String? @map(\"city\") @db.VarChar(100)\n state String? @map(\"state\") @db.VarChar(100)\n country String? @map(\"country\") @db.VarChar(100)\n complexSlug String @unique @map(\"complex_slug\")\n adminEmail String @map(\"admin_email\")\n planCode String? @map(\"plan_code\") @db.VarChar(10)\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n plan Plan? @relation(fields: [planCode], references: [code])\n users ComplexUser[]\n invitations ComplexInvitation[]\n courts Court[]\n\n @@index([planCode])\n @@index([complexSlug])\n @@map(\"complexes\")\n}\n\nenum ComplexUserRole {\n ADMIN\n EMPLOYEE\n}\n\nmodel ComplexUser {\n complexId String @map(\"complex_id\") @db.Uuid\n userId String @map(\"user_id\")\n role ComplexUserRole @default(ADMIN)\n createdAt DateTime @default(now()) @map(\"created_at\")\n complex Complex @relation(fields: [complexId], references: [id], onDelete: Cascade)\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@id([complexId, userId])\n @@index([userId])\n @@map(\"complex_users\")\n}\n\nmodel ComplexInvitation {\n id String @id @db.Uuid\n complexId String @map(\"complex_id\") @db.Uuid\n email String @db.VarChar(255)\n tokenHash String @unique @map(\"token_hash\")\n expiresAt DateTime @map(\"expires_at\")\n acceptedAt DateTime? @map(\"accepted_at\")\n revokedAt DateTime? @map(\"revoked_at\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n complex Complex @relation(fields: [complexId], references: [id], onDelete: Cascade)\n\n @@index([complexId, email])\n @@index([email])\n @@map(\"complex_invitations\")\n}\n\nenum DayOfWeek {\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n SUNDAY\n}\n\nenum CourtBookingStatus {\n CONFIRMED\n CANCELLED\n COMPLETED\n NOSHOW\n}\n\nmodel Sport {\n id String @id @db.Uuid\n name String @unique\n slug String @unique\n isActive Boolean @default(true) @map(\"is_active\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n courts Court[]\n\n @@map(\"sports\")\n}\n\nmodel Court {\n id String @id @db.Uuid\n complexId String @map(\"complex_id\") @db.Uuid\n sportId String @map(\"sport_id\") @db.Uuid\n name String\n slotDurationMinutes Int @map(\"slot_duration_minutes\")\n basePrice Decimal @map(\"base_price\") @db.Decimal(19, 2)\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n complex Complex @relation(fields: [complexId], references: [id], onDelete: Cascade)\n sport Sport @relation(fields: [sportId], references: [id])\n availabilities CourtAvailability[]\n priceRules CourtPriceRule[]\n bookings CourtBooking[]\n\n @@index([complexId])\n @@index([sportId])\n @@map(\"courts\")\n}\n\nmodel CourtAvailability {\n id String @id @db.Uuid\n courtId String @map(\"court_id\") @db.Uuid\n dayOfWeek DayOfWeek @map(\"day_of_week\")\n startTime String @map(\"start_time\") @db.VarChar(5)\n endTime String @map(\"end_time\") @db.VarChar(5)\n createdAt DateTime @default(now()) @map(\"created_at\")\n court Court @relation(fields: [courtId], references: [id], onDelete: Cascade)\n\n @@index([courtId, dayOfWeek])\n @@map(\"court_availabilities\")\n}\n\nmodel CourtPriceRule {\n id String @id @db.Uuid\n courtId String @map(\"court_id\") @db.Uuid\n dayOfWeek DayOfWeek? @map(\"day_of_week\")\n startTime String? @map(\"start_time\") @db.VarChar(5)\n endTime String? @map(\"end_time\") @db.VarChar(5)\n price Decimal @db.Decimal(19, 2)\n isActive Boolean @default(true) @map(\"is_active\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n court Court @relation(fields: [courtId], references: [id], onDelete: Cascade)\n\n @@index([courtId, isActive])\n @@map(\"court_price_rules\")\n}\n\nmodel CourtBooking {\n id String @id @db.Uuid\n bookingCode String @unique @map(\"booking_code\") @db.VarChar(8)\n courtId String @map(\"court_id\") @db.Uuid\n bookingDate DateTime @map(\"booking_date\") @db.Date\n startTime String @map(\"start_time\") @db.VarChar(5)\n endTime String @map(\"end_time\") @db.VarChar(5)\n customerName String @map(\"customer_name\") @db.VarChar(120)\n customerPhone String @map(\"customer_phone\") @db.VarChar(30)\n status CourtBookingStatus @default(CONFIRMED)\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n court Court @relation(fields: [courtId], references: [id], onDelete: Cascade)\n\n @@unique([courtId, bookingDate, startTime])\n @@index([courtId, bookingDate])\n @@index([bookingDate])\n @@map(\"court_bookings\")\n}\n\nmodel CourtBookingLog {\n id String @id @db.Uuid\n bookingCode String @map(\"booking_code\") @db.VarChar(8)\n courtId String @map(\"court_id\") @db.Uuid\n bookingDate DateTime @map(\"booking_date\") @db.Date\n startTime String @map(\"start_time\") @db.VarChar(5)\n endTime String @map(\"end_time\") @db.VarChar(5)\n previousStatus CourtBookingStatus @map(\"previous_status\")\n newStatus CourtBookingStatus @map(\"new_status\")\n customerName String @map(\"customer_name\") @db.VarChar(120)\n customerPhone String @map(\"customer_phone\") @db.VarChar(30)\n changedAt DateTime @default(now()) @map(\"changed_at\")\n\n @@index([courtId, newStatus])\n @@map(\"court_booking_logs\")\n}\n\nmodel OnboardingRequest {\n id String @id @db.Uuid\n fullName String @map(\"full_name\")\n email String\n otpHash String @map(\"otp_hash\")\n otpExpiresAt DateTime @map(\"otp_expires_at\")\n otpAttempts Int @default(0) @map(\"otp_attempts\")\n otpLastSentAt DateTime @map(\"otp_last_sent_at\")\n otpResendCount Int @default(0) @map(\"otp_resend_count\")\n emailVerifiedAt DateTime? @map(\"email_verified_at\")\n completedAt DateTime? @map(\"completed_at\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@index([email])\n @@index([otpExpiresAt])\n @@map(\"onboarding_requests\")\n}\n\nmodel PasswordResetRequest {\n id String @id @db.Uuid\n email String\n otpHash String @map(\"otp_hash\")\n otpExpiresAt DateTime @map(\"otp_expires_at\")\n otpAttempts Int @default(0) @map(\"otp_attempts\")\n otpLastSentAt DateTime @map(\"otp_last_sent_at\")\n otpResendCount Int @default(0) @map(\"otp_resend_count\")\n usedAt DateTime? @map(\"used_at\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@index([email])\n @@index([otpExpiresAt])\n @@map(\"password_reset_requests\")\n}\n\nmodel Plan {\n code String @id @db.VarChar(10)\n name String @db.VarChar(30)\n price Decimal @db.Decimal(19, 2)\n rules Json\n lastUpdatedAt DateTime @default(now()) @map(\"last_updated_at\")\n complexes Complex[]\n\n @@map(\"plans\")\n}\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\n// User model is defined in auth.prisma (Better Auth schema).\n", + "inlineSchema": "model User {\n id String @id\n name String\n email String\n emailVerified Boolean @default(false)\n image String?\n phone String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n sessions Session[]\n accounts Account[]\n role String @default(\"member\")\n complexes ComplexUser[]\n\n @@unique([email])\n @@map(\"users\")\n}\n\nmodel Session {\n id String @id\n expiresAt DateTime\n token String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n ipAddress String?\n userAgent String?\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([token])\n @@index([userId])\n @@map(\"sessions\")\n}\n\nmodel Account {\n id String @id\n accountId String\n providerId String\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n accessToken String?\n refreshToken String?\n idToken String?\n accessTokenExpiresAt DateTime?\n refreshTokenExpiresAt DateTime?\n scope String?\n password String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([userId])\n @@map(\"accounts\")\n}\n\nmodel Verification {\n id String @id\n identifier String\n value String\n expiresAt DateTime\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([identifier])\n @@map(\"verification\")\n}\n\nmodel Complex {\n id String @id @db.Uuid\n complexName String @map(\"complex_name\")\n physicalAddress String? @map(\"physical_address\") @db.VarChar(200)\n city String? @map(\"city\") @db.VarChar(100)\n state String? @map(\"state\") @db.VarChar(100)\n country String? @map(\"country\") @db.VarChar(100)\n complexSlug String @unique @map(\"complex_slug\")\n adminEmail String @map(\"admin_email\")\n planCode String? @map(\"plan_code\") @db.VarChar(10)\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n plan Plan? @relation(fields: [planCode], references: [code])\n users ComplexUser[]\n invitations ComplexInvitation[]\n courts Court[]\n\n @@index([planCode])\n @@index([complexSlug])\n @@map(\"complexes\")\n}\n\nenum ComplexUserRole {\n ADMIN\n EMPLOYEE\n}\n\nmodel ComplexUser {\n complexId String @map(\"complex_id\") @db.Uuid\n userId String @map(\"user_id\")\n role ComplexUserRole @default(ADMIN)\n createdAt DateTime @default(now()) @map(\"created_at\")\n complex Complex @relation(fields: [complexId], references: [id], onDelete: Cascade)\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@id([complexId, userId])\n @@index([userId])\n @@map(\"complex_users\")\n}\n\nmodel ComplexInvitation {\n id String @id @db.Uuid\n complexId String @map(\"complex_id\") @db.Uuid\n email String @db.VarChar(255)\n tokenHash String @unique @map(\"token_hash\")\n expiresAt DateTime @map(\"expires_at\")\n acceptedAt DateTime? @map(\"accepted_at\")\n revokedAt DateTime? @map(\"revoked_at\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n complex Complex @relation(fields: [complexId], references: [id], onDelete: Cascade)\n\n @@index([complexId, email])\n @@index([email])\n @@map(\"complex_invitations\")\n}\n\nenum DayOfWeek {\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n SUNDAY\n}\n\nenum CourtBookingStatus {\n CONFIRMED\n CANCELLED\n COMPLETED\n NOSHOW\n}\n\nmodel Sport {\n id String @id @db.Uuid\n name String @unique\n slug String @unique\n isActive Boolean @default(true) @map(\"is_active\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n courts Court[]\n\n @@map(\"sports\")\n}\n\nmodel Court {\n id String @id @db.Uuid\n complexId String @map(\"complex_id\") @db.Uuid\n sportId String @map(\"sport_id\") @db.Uuid\n name String\n slotDurationMinutes Int @map(\"slot_duration_minutes\")\n basePrice Decimal @map(\"base_price\") @db.Decimal(19, 2)\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n complex Complex @relation(fields: [complexId], references: [id], onDelete: Cascade)\n sport Sport @relation(fields: [sportId], references: [id])\n availabilities CourtAvailability[]\n priceRules CourtPriceRule[]\n bookings CourtBooking[]\n\n @@index([complexId])\n @@index([sportId])\n @@map(\"courts\")\n}\n\nmodel CourtAvailability {\n id String @id @db.Uuid\n courtId String @map(\"court_id\") @db.Uuid\n dayOfWeek DayOfWeek @map(\"day_of_week\")\n startTime String @map(\"start_time\") @db.VarChar(5)\n endTime String @map(\"end_time\") @db.VarChar(5)\n createdAt DateTime @default(now()) @map(\"created_at\")\n court Court @relation(fields: [courtId], references: [id], onDelete: Cascade)\n\n @@index([courtId, dayOfWeek])\n @@map(\"court_availabilities\")\n}\n\nmodel CourtPriceRule {\n id String @id @db.Uuid\n courtId String @map(\"court_id\") @db.Uuid\n dayOfWeek DayOfWeek? @map(\"day_of_week\")\n startTime String? @map(\"start_time\") @db.VarChar(5)\n endTime String? @map(\"end_time\") @db.VarChar(5)\n price Decimal @db.Decimal(19, 2)\n isActive Boolean @default(true) @map(\"is_active\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n court Court @relation(fields: [courtId], references: [id], onDelete: Cascade)\n\n @@index([courtId, isActive])\n @@map(\"court_price_rules\")\n}\n\nmodel CourtBooking {\n id String @id @db.Uuid\n bookingCode String @unique @map(\"booking_code\") @db.VarChar(8)\n courtId String @map(\"court_id\") @db.Uuid\n bookingDate DateTime @map(\"booking_date\") @db.Date\n startTime String @map(\"start_time\") @db.VarChar(5)\n endTime String @map(\"end_time\") @db.VarChar(5)\n customerName String @map(\"customer_name\") @db.VarChar(120)\n customerPhone String @map(\"customer_phone\") @db.VarChar(30)\n customerEmail String? @map(\"customer_email\") @db.VarChar(254)\n status CourtBookingStatus @default(CONFIRMED)\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n court Court @relation(fields: [courtId], references: [id], onDelete: Cascade)\n\n @@unique([courtId, bookingDate, startTime])\n @@index([courtId, bookingDate])\n @@index([bookingDate])\n @@map(\"court_bookings\")\n}\n\nmodel CourtBookingLog {\n id String @id @db.Uuid\n bookingCode String @map(\"booking_code\") @db.VarChar(8)\n courtId String @map(\"court_id\") @db.Uuid\n bookingDate DateTime @map(\"booking_date\") @db.Date\n startTime String @map(\"start_time\") @db.VarChar(5)\n endTime String @map(\"end_time\") @db.VarChar(5)\n previousStatus CourtBookingStatus @map(\"previous_status\")\n newStatus CourtBookingStatus @map(\"new_status\")\n customerName String @map(\"customer_name\") @db.VarChar(120)\n customerPhone String @map(\"customer_phone\") @db.VarChar(30)\n customerEmail String? @map(\"customer_email\") @db.VarChar(254)\n changedAt DateTime @default(now()) @map(\"changed_at\")\n\n @@index([courtId, newStatus])\n @@map(\"court_booking_logs\")\n}\n\nmodel PasswordResetRequest {\n id String @id @db.Uuid\n email String\n otpHash String @map(\"otp_hash\")\n otpExpiresAt DateTime @map(\"otp_expires_at\")\n otpAttempts Int @default(0) @map(\"otp_attempts\")\n otpLastSentAt DateTime @map(\"otp_last_sent_at\")\n otpResendCount Int @default(0) @map(\"otp_resend_count\")\n usedAt DateTime? @map(\"used_at\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@index([email])\n @@index([otpExpiresAt])\n @@map(\"password_reset_requests\")\n}\n\nmodel Plan {\n code String @id @db.VarChar(10)\n name String @db.VarChar(30)\n price Decimal @db.Decimal(19, 2)\n rules Json\n lastUpdatedAt DateTime @default(now()) @map(\"last_updated_at\")\n complexes Complex[]\n\n @@map(\"plans\")\n}\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\n// User model is defined in auth.prisma (Better Auth schema).\n", "runtimeDataModel": { "models": {}, "enums": {}, @@ -32,10 +32,10 @@ const config: runtime.GetPrismaClientConfig = { } } -config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complexes\",\"kind\":\"object\",\"type\":\"ComplexUser\",\"relationName\":\"ComplexUserToUser\"}],\"dbName\":\"users\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"sessions\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accountId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"},{\"name\":\"accessToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refreshToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"idToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"accounts\"},\"Verification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"verification\"},\"Complex\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complexName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"complex_name\"},{\"name\":\"physicalAddress\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"physical_address\"},{\"name\":\"city\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"city\"},{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state\"},{\"name\":\"country\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"country\"},{\"name\":\"complexSlug\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"complex_slug\"},{\"name\":\"adminEmail\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"admin_email\"},{\"name\":\"planCode\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"plan_code\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"plan\",\"kind\":\"object\",\"type\":\"Plan\",\"relationName\":\"ComplexToPlan\"},{\"name\":\"users\",\"kind\":\"object\",\"type\":\"ComplexUser\",\"relationName\":\"ComplexToComplexUser\"},{\"name\":\"invitations\",\"kind\":\"object\",\"type\":\"ComplexInvitation\",\"relationName\":\"ComplexToComplexInvitation\"},{\"name\":\"courts\",\"kind\":\"object\",\"type\":\"Court\",\"relationName\":\"ComplexToCourt\"}],\"dbName\":\"complexes\"},\"ComplexUser\":{\"fields\":[{\"name\":\"complexId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"complex_id\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ComplexUserRole\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToComplexUser\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ComplexUserToUser\"}],\"dbName\":\"complex_users\"},\"ComplexInvitation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complexId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"complex_id\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"tokenHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"token_hash\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"acceptedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"accepted_at\"},{\"name\":\"revokedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"revoked_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToComplexInvitation\"}],\"dbName\":\"complex_invitations\"},\"Sport\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_active\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"courts\",\"kind\":\"object\",\"type\":\"Court\",\"relationName\":\"CourtToSport\"}],\"dbName\":\"sports\"},\"Court\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complexId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"complex_id\"},{\"name\":\"sportId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"sport_id\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"slotDurationMinutes\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"slot_duration_minutes\"},{\"name\":\"basePrice\",\"kind\":\"scalar\",\"type\":\"Decimal\",\"dbName\":\"base_price\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToCourt\"},{\"name\":\"sport\",\"kind\":\"object\",\"type\":\"Sport\",\"relationName\":\"CourtToSport\"},{\"name\":\"availabilities\",\"kind\":\"object\",\"type\":\"CourtAvailability\",\"relationName\":\"CourtToCourtAvailability\"},{\"name\":\"priceRules\",\"kind\":\"object\",\"type\":\"CourtPriceRule\",\"relationName\":\"CourtToCourtPriceRule\"},{\"name\":\"bookings\",\"kind\":\"object\",\"type\":\"CourtBooking\",\"relationName\":\"CourtToCourtBooking\"}],\"dbName\":\"courts\"},\"CourtAvailability\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"courtId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"court_id\"},{\"name\":\"dayOfWeek\",\"kind\":\"enum\",\"type\":\"DayOfWeek\",\"dbName\":\"day_of_week\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"start_time\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"end_time\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"court\",\"kind\":\"object\",\"type\":\"Court\",\"relationName\":\"CourtToCourtAvailability\"}],\"dbName\":\"court_availabilities\"},\"CourtPriceRule\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"courtId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"court_id\"},{\"name\":\"dayOfWeek\",\"kind\":\"enum\",\"type\":\"DayOfWeek\",\"dbName\":\"day_of_week\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"start_time\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"end_time\"},{\"name\":\"price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_active\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"court\",\"kind\":\"object\",\"type\":\"Court\",\"relationName\":\"CourtToCourtPriceRule\"}],\"dbName\":\"court_price_rules\"},\"CourtBooking\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bookingCode\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"booking_code\"},{\"name\":\"courtId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"court_id\"},{\"name\":\"bookingDate\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"booking_date\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"start_time\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"end_time\"},{\"name\":\"customerName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"customer_name\"},{\"name\":\"customerPhone\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"customer_phone\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"CourtBookingStatus\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"court\",\"kind\":\"object\",\"type\":\"Court\",\"relationName\":\"CourtToCourtBooking\"}],\"dbName\":\"court_bookings\"},\"CourtBookingLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bookingCode\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"booking_code\"},{\"name\":\"courtId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"court_id\"},{\"name\":\"bookingDate\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"booking_date\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"start_time\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"end_time\"},{\"name\":\"previousStatus\",\"kind\":\"enum\",\"type\":\"CourtBookingStatus\",\"dbName\":\"previous_status\"},{\"name\":\"newStatus\",\"kind\":\"enum\",\"type\":\"CourtBookingStatus\",\"dbName\":\"new_status\"},{\"name\":\"customerName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"customer_name\"},{\"name\":\"customerPhone\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"customer_phone\"},{\"name\":\"changedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"changed_at\"}],\"dbName\":\"court_booking_logs\"},\"OnboardingRequest\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fullName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"full_name\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"otpHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"otp_hash\"},{\"name\":\"otpExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"otp_expires_at\"},{\"name\":\"otpAttempts\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"otp_attempts\"},{\"name\":\"otpLastSentAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"otp_last_sent_at\"},{\"name\":\"otpResendCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"otp_resend_count\"},{\"name\":\"emailVerifiedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"email_verified_at\"},{\"name\":\"completedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"completed_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"onboarding_requests\"},\"PasswordResetRequest\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"otpHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"otp_hash\"},{\"name\":\"otpExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"otp_expires_at\"},{\"name\":\"otpAttempts\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"otp_attempts\"},{\"name\":\"otpLastSentAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"otp_last_sent_at\"},{\"name\":\"otpResendCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"otp_resend_count\"},{\"name\":\"usedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"used_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"password_reset_requests\"},\"Plan\":{\"fields\":[{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"rules\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"lastUpdatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"last_updated_at\"},{\"name\":\"complexes\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToPlan\"}],\"dbName\":\"plans\"}},\"enums\":{},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complexes\",\"kind\":\"object\",\"type\":\"ComplexUser\",\"relationName\":\"ComplexUserToUser\"}],\"dbName\":\"users\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"sessions\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accountId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"},{\"name\":\"accessToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refreshToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"idToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"accounts\"},\"Verification\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"verification\"},\"Complex\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complexName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"complex_name\"},{\"name\":\"physicalAddress\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"physical_address\"},{\"name\":\"city\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"city\"},{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state\"},{\"name\":\"country\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"country\"},{\"name\":\"complexSlug\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"complex_slug\"},{\"name\":\"adminEmail\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"admin_email\"},{\"name\":\"planCode\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"plan_code\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"plan\",\"kind\":\"object\",\"type\":\"Plan\",\"relationName\":\"ComplexToPlan\"},{\"name\":\"users\",\"kind\":\"object\",\"type\":\"ComplexUser\",\"relationName\":\"ComplexToComplexUser\"},{\"name\":\"invitations\",\"kind\":\"object\",\"type\":\"ComplexInvitation\",\"relationName\":\"ComplexToComplexInvitation\"},{\"name\":\"courts\",\"kind\":\"object\",\"type\":\"Court\",\"relationName\":\"ComplexToCourt\"}],\"dbName\":\"complexes\"},\"ComplexUser\":{\"fields\":[{\"name\":\"complexId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"complex_id\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ComplexUserRole\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToComplexUser\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ComplexUserToUser\"}],\"dbName\":\"complex_users\"},\"ComplexInvitation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complexId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"complex_id\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"tokenHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"token_hash\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"acceptedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"accepted_at\"},{\"name\":\"revokedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"revoked_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToComplexInvitation\"}],\"dbName\":\"complex_invitations\"},\"Sport\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_active\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"courts\",\"kind\":\"object\",\"type\":\"Court\",\"relationName\":\"CourtToSport\"}],\"dbName\":\"sports\"},\"Court\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"complexId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"complex_id\"},{\"name\":\"sportId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"sport_id\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"slotDurationMinutes\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"slot_duration_minutes\"},{\"name\":\"basePrice\",\"kind\":\"scalar\",\"type\":\"Decimal\",\"dbName\":\"base_price\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"complex\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToCourt\"},{\"name\":\"sport\",\"kind\":\"object\",\"type\":\"Sport\",\"relationName\":\"CourtToSport\"},{\"name\":\"availabilities\",\"kind\":\"object\",\"type\":\"CourtAvailability\",\"relationName\":\"CourtToCourtAvailability\"},{\"name\":\"priceRules\",\"kind\":\"object\",\"type\":\"CourtPriceRule\",\"relationName\":\"CourtToCourtPriceRule\"},{\"name\":\"bookings\",\"kind\":\"object\",\"type\":\"CourtBooking\",\"relationName\":\"CourtToCourtBooking\"}],\"dbName\":\"courts\"},\"CourtAvailability\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"courtId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"court_id\"},{\"name\":\"dayOfWeek\",\"kind\":\"enum\",\"type\":\"DayOfWeek\",\"dbName\":\"day_of_week\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"start_time\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"end_time\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"court\",\"kind\":\"object\",\"type\":\"Court\",\"relationName\":\"CourtToCourtAvailability\"}],\"dbName\":\"court_availabilities\"},\"CourtPriceRule\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"courtId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"court_id\"},{\"name\":\"dayOfWeek\",\"kind\":\"enum\",\"type\":\"DayOfWeek\",\"dbName\":\"day_of_week\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"start_time\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"end_time\"},{\"name\":\"price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_active\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"court\",\"kind\":\"object\",\"type\":\"Court\",\"relationName\":\"CourtToCourtPriceRule\"}],\"dbName\":\"court_price_rules\"},\"CourtBooking\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bookingCode\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"booking_code\"},{\"name\":\"courtId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"court_id\"},{\"name\":\"bookingDate\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"booking_date\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"start_time\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"end_time\"},{\"name\":\"customerName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"customer_name\"},{\"name\":\"customerPhone\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"customer_phone\"},{\"name\":\"customerEmail\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"customer_email\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"CourtBookingStatus\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"court\",\"kind\":\"object\",\"type\":\"Court\",\"relationName\":\"CourtToCourtBooking\"}],\"dbName\":\"court_bookings\"},\"CourtBookingLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"bookingCode\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"booking_code\"},{\"name\":\"courtId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"court_id\"},{\"name\":\"bookingDate\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"booking_date\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"start_time\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"end_time\"},{\"name\":\"previousStatus\",\"kind\":\"enum\",\"type\":\"CourtBookingStatus\",\"dbName\":\"previous_status\"},{\"name\":\"newStatus\",\"kind\":\"enum\",\"type\":\"CourtBookingStatus\",\"dbName\":\"new_status\"},{\"name\":\"customerName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"customer_name\"},{\"name\":\"customerPhone\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"customer_phone\"},{\"name\":\"customerEmail\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"customer_email\"},{\"name\":\"changedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"changed_at\"}],\"dbName\":\"court_booking_logs\"},\"PasswordResetRequest\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"otpHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"otp_hash\"},{\"name\":\"otpExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"otp_expires_at\"},{\"name\":\"otpAttempts\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"otp_attempts\"},{\"name\":\"otpLastSentAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"otp_last_sent_at\"},{\"name\":\"otpResendCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"otp_resend_count\"},{\"name\":\"usedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"used_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"password_reset_requests\"},\"Plan\":{\"fields\":[{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"price\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"rules\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"lastUpdatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"last_updated_at\"},{\"name\":\"complexes\",\"kind\":\"object\",\"type\":\"Complex\",\"relationName\":\"ComplexToPlan\"}],\"dbName\":\"plans\"}},\"enums\":{},\"types\":{}}") config.parameterizationSchema = { - strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"sessions\",\"accounts\",\"complexes\",\"_count\",\"plan\",\"users\",\"complex\",\"invitations\",\"courts\",\"sport\",\"court\",\"availabilities\",\"priceRules\",\"bookings\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"data\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"create\",\"update\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"having\",\"_min\",\"_max\",\"User.groupBy\",\"User.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"Verification.findUnique\",\"Verification.findUniqueOrThrow\",\"Verification.findFirst\",\"Verification.findFirstOrThrow\",\"Verification.findMany\",\"Verification.createOne\",\"Verification.createMany\",\"Verification.createManyAndReturn\",\"Verification.updateOne\",\"Verification.updateMany\",\"Verification.updateManyAndReturn\",\"Verification.upsertOne\",\"Verification.deleteOne\",\"Verification.deleteMany\",\"Verification.groupBy\",\"Verification.aggregate\",\"Complex.findUnique\",\"Complex.findUniqueOrThrow\",\"Complex.findFirst\",\"Complex.findFirstOrThrow\",\"Complex.findMany\",\"Complex.createOne\",\"Complex.createMany\",\"Complex.createManyAndReturn\",\"Complex.updateOne\",\"Complex.updateMany\",\"Complex.updateManyAndReturn\",\"Complex.upsertOne\",\"Complex.deleteOne\",\"Complex.deleteMany\",\"Complex.groupBy\",\"Complex.aggregate\",\"ComplexUser.findUnique\",\"ComplexUser.findUniqueOrThrow\",\"ComplexUser.findFirst\",\"ComplexUser.findFirstOrThrow\",\"ComplexUser.findMany\",\"ComplexUser.createOne\",\"ComplexUser.createMany\",\"ComplexUser.createManyAndReturn\",\"ComplexUser.updateOne\",\"ComplexUser.updateMany\",\"ComplexUser.updateManyAndReturn\",\"ComplexUser.upsertOne\",\"ComplexUser.deleteOne\",\"ComplexUser.deleteMany\",\"ComplexUser.groupBy\",\"ComplexUser.aggregate\",\"ComplexInvitation.findUnique\",\"ComplexInvitation.findUniqueOrThrow\",\"ComplexInvitation.findFirst\",\"ComplexInvitation.findFirstOrThrow\",\"ComplexInvitation.findMany\",\"ComplexInvitation.createOne\",\"ComplexInvitation.createMany\",\"ComplexInvitation.createManyAndReturn\",\"ComplexInvitation.updateOne\",\"ComplexInvitation.updateMany\",\"ComplexInvitation.updateManyAndReturn\",\"ComplexInvitation.upsertOne\",\"ComplexInvitation.deleteOne\",\"ComplexInvitation.deleteMany\",\"ComplexInvitation.groupBy\",\"ComplexInvitation.aggregate\",\"Sport.findUnique\",\"Sport.findUniqueOrThrow\",\"Sport.findFirst\",\"Sport.findFirstOrThrow\",\"Sport.findMany\",\"Sport.createOne\",\"Sport.createMany\",\"Sport.createManyAndReturn\",\"Sport.updateOne\",\"Sport.updateMany\",\"Sport.updateManyAndReturn\",\"Sport.upsertOne\",\"Sport.deleteOne\",\"Sport.deleteMany\",\"Sport.groupBy\",\"Sport.aggregate\",\"Court.findUnique\",\"Court.findUniqueOrThrow\",\"Court.findFirst\",\"Court.findFirstOrThrow\",\"Court.findMany\",\"Court.createOne\",\"Court.createMany\",\"Court.createManyAndReturn\",\"Court.updateOne\",\"Court.updateMany\",\"Court.updateManyAndReturn\",\"Court.upsertOne\",\"Court.deleteOne\",\"Court.deleteMany\",\"_avg\",\"_sum\",\"Court.groupBy\",\"Court.aggregate\",\"CourtAvailability.findUnique\",\"CourtAvailability.findUniqueOrThrow\",\"CourtAvailability.findFirst\",\"CourtAvailability.findFirstOrThrow\",\"CourtAvailability.findMany\",\"CourtAvailability.createOne\",\"CourtAvailability.createMany\",\"CourtAvailability.createManyAndReturn\",\"CourtAvailability.updateOne\",\"CourtAvailability.updateMany\",\"CourtAvailability.updateManyAndReturn\",\"CourtAvailability.upsertOne\",\"CourtAvailability.deleteOne\",\"CourtAvailability.deleteMany\",\"CourtAvailability.groupBy\",\"CourtAvailability.aggregate\",\"CourtPriceRule.findUnique\",\"CourtPriceRule.findUniqueOrThrow\",\"CourtPriceRule.findFirst\",\"CourtPriceRule.findFirstOrThrow\",\"CourtPriceRule.findMany\",\"CourtPriceRule.createOne\",\"CourtPriceRule.createMany\",\"CourtPriceRule.createManyAndReturn\",\"CourtPriceRule.updateOne\",\"CourtPriceRule.updateMany\",\"CourtPriceRule.updateManyAndReturn\",\"CourtPriceRule.upsertOne\",\"CourtPriceRule.deleteOne\",\"CourtPriceRule.deleteMany\",\"CourtPriceRule.groupBy\",\"CourtPriceRule.aggregate\",\"CourtBooking.findUnique\",\"CourtBooking.findUniqueOrThrow\",\"CourtBooking.findFirst\",\"CourtBooking.findFirstOrThrow\",\"CourtBooking.findMany\",\"CourtBooking.createOne\",\"CourtBooking.createMany\",\"CourtBooking.createManyAndReturn\",\"CourtBooking.updateOne\",\"CourtBooking.updateMany\",\"CourtBooking.updateManyAndReturn\",\"CourtBooking.upsertOne\",\"CourtBooking.deleteOne\",\"CourtBooking.deleteMany\",\"CourtBooking.groupBy\",\"CourtBooking.aggregate\",\"CourtBookingLog.findUnique\",\"CourtBookingLog.findUniqueOrThrow\",\"CourtBookingLog.findFirst\",\"CourtBookingLog.findFirstOrThrow\",\"CourtBookingLog.findMany\",\"CourtBookingLog.createOne\",\"CourtBookingLog.createMany\",\"CourtBookingLog.createManyAndReturn\",\"CourtBookingLog.updateOne\",\"CourtBookingLog.updateMany\",\"CourtBookingLog.updateManyAndReturn\",\"CourtBookingLog.upsertOne\",\"CourtBookingLog.deleteOne\",\"CourtBookingLog.deleteMany\",\"CourtBookingLog.groupBy\",\"CourtBookingLog.aggregate\",\"OnboardingRequest.findUnique\",\"OnboardingRequest.findUniqueOrThrow\",\"OnboardingRequest.findFirst\",\"OnboardingRequest.findFirstOrThrow\",\"OnboardingRequest.findMany\",\"OnboardingRequest.createOne\",\"OnboardingRequest.createMany\",\"OnboardingRequest.createManyAndReturn\",\"OnboardingRequest.updateOne\",\"OnboardingRequest.updateMany\",\"OnboardingRequest.updateManyAndReturn\",\"OnboardingRequest.upsertOne\",\"OnboardingRequest.deleteOne\",\"OnboardingRequest.deleteMany\",\"OnboardingRequest.groupBy\",\"OnboardingRequest.aggregate\",\"PasswordResetRequest.findUnique\",\"PasswordResetRequest.findUniqueOrThrow\",\"PasswordResetRequest.findFirst\",\"PasswordResetRequest.findFirstOrThrow\",\"PasswordResetRequest.findMany\",\"PasswordResetRequest.createOne\",\"PasswordResetRequest.createMany\",\"PasswordResetRequest.createManyAndReturn\",\"PasswordResetRequest.updateOne\",\"PasswordResetRequest.updateMany\",\"PasswordResetRequest.updateManyAndReturn\",\"PasswordResetRequest.upsertOne\",\"PasswordResetRequest.deleteOne\",\"PasswordResetRequest.deleteMany\",\"PasswordResetRequest.groupBy\",\"PasswordResetRequest.aggregate\",\"Plan.findUnique\",\"Plan.findUniqueOrThrow\",\"Plan.findFirst\",\"Plan.findFirstOrThrow\",\"Plan.findMany\",\"Plan.createOne\",\"Plan.createMany\",\"Plan.createManyAndReturn\",\"Plan.updateOne\",\"Plan.updateMany\",\"Plan.updateManyAndReturn\",\"Plan.upsertOne\",\"Plan.deleteOne\",\"Plan.deleteMany\",\"Plan.groupBy\",\"Plan.aggregate\",\"AND\",\"OR\",\"NOT\",\"code\",\"name\",\"price\",\"rules\",\"lastUpdatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"string_contains\",\"string_starts_with\",\"string_ends_with\",\"array_starts_with\",\"array_ends_with\",\"array_contains\",\"contains\",\"startsWith\",\"endsWith\",\"every\",\"some\",\"none\",\"id\",\"email\",\"otpHash\",\"otpExpiresAt\",\"otpAttempts\",\"otpLastSentAt\",\"otpResendCount\",\"usedAt\",\"createdAt\",\"updatedAt\",\"fullName\",\"emailVerifiedAt\",\"completedAt\",\"bookingCode\",\"courtId\",\"bookingDate\",\"startTime\",\"endTime\",\"CourtBookingStatus\",\"previousStatus\",\"newStatus\",\"customerName\",\"customerPhone\",\"changedAt\",\"status\",\"DayOfWeek\",\"dayOfWeek\",\"isActive\",\"complexId\",\"sportId\",\"slotDurationMinutes\",\"basePrice\",\"slug\",\"tokenHash\",\"expiresAt\",\"acceptedAt\",\"revokedAt\",\"userId\",\"ComplexUserRole\",\"role\",\"complexName\",\"physicalAddress\",\"city\",\"state\",\"country\",\"complexSlug\",\"adminEmail\",\"planCode\",\"identifier\",\"value\",\"accountId\",\"providerId\",\"accessToken\",\"refreshToken\",\"idToken\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"scope\",\"password\",\"token\",\"ipAddress\",\"userAgent\",\"emailVerified\",\"image\",\"phone\",\"courtId_bookingDate_startTime\",\"complexId_userId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), - graph: "zgaQAYACDwQAAPUDACAFAAD2AwAgBgAA9wMAIJoCAADzAwAwmwIAADcAEJwCAADzAwAwngIBALgDACG2AgEAAAABtwIBAAAAAb4CQAC7AwAhvwJAALsDACHdAgEAuAMAIfQCIADmAwAh9QIBAPQDACH2AgEA9AMAIQEAAAABACAMAwAAjAQAIJoCAACOBAAwmwIAAAMAEJwCAACOBAAwtgIBALgDACG-AkAAuwMAIb8CQAC7AwAh2AJAALsDACHbAgEAuAMAIfECAQC4AwAh8gIBAPQDACHzAgEA9AMAIQMDAACMBgAg8gIAAIYFACDzAgAAhgUAIAwDAACMBAAgmgIAAI4EADCbAgAAAwAQnAIAAI4EADC2AgEAAAABvgJAALsDACG_AkAAuwMAIdgCQAC7AwAh2wIBALgDACHxAgEAAAAB8gIBAPQDACHzAgEA9AMAIQMAAAADACABAAAEADACAAAFACARAwAAjAQAIJoCAACNBAAwmwIAAAcAEJwCAACNBAAwtgIBALgDACG-AkAAuwMAIb8CQAC7AwAh2wIBALgDACHoAgEAuAMAIekCAQC4AwAh6gIBAPQDACHrAgEA9AMAIewCAQD0AwAh7QJAAMoDACHuAkAAygMAIe8CAQD0AwAh8AIBAPQDACEIAwAAjAYAIOoCAACGBQAg6wIAAIYFACDsAgAAhgUAIO0CAACGBQAg7gIAAIYFACDvAgAAhgUAIPACAACGBQAgEQMAAIwEACCaAgAAjQQAMJsCAAAHABCcAgAAjQQAMLYCAQAAAAG-AkAAuwMAIb8CQAC7AwAh2wIBALgDACHoAgEAuAMAIekCAQC4AwAh6gIBAPQDACHrAgEA9AMAIewCAQD0AwAh7QJAAMoDACHuAkAAygMAIe8CAQD0AwAh8AIBAPQDACEDAAAABwAgAQAACAAwAgAACQAgCQMAAIwEACAKAACABAAgmgIAAIoEADCbAgAACwAQnAIAAIoEADC-AkAAuwMAIdICAQDIAwAh2wIBALgDACHdAgAAiwTdAiICAwAAjAYAIAoAAIUGACAKAwAAjAQAIAoAAIAEACCaAgAAigQAMJsCAAALABCcAgAAigQAML4CQAC7AwAh0gIBAMgDACHbAgEAuAMAId0CAACLBN0CIvgCAACJBAAgAwAAAAsAIAEAAAwAMAIAAA0AIAkGAAC8AwAgmgIAALcDADCbAgAADwAQnAIAALcDADCdAgEAuAMAIZ4CAQC4AwAhnwIQALkDACGgAgAAugMAIKECQAC7AwAhAQAAAA8AIBIIAACHBAAgCQAA9wMAIAsAAIgEACAMAADnAwAgmgIAAIYEADCbAgAAEQAQnAIAAIYEADC2AgEAyAMAIb4CQAC7AwAhvwJAALsDACHeAgEAuAMAId8CAQD0AwAh4AIBAPQDACHhAgEA9AMAIeICAQD0AwAh4wIBALgDACHkAgEAuAMAIeUCAQD0AwAhCQgAAIoGACAJAACDBgAgCwAAiwYAIAwAALoFACDfAgAAhgUAIOACAACGBQAg4QIAAIYFACDiAgAAhgUAIOUCAACGBQAgEggAAIcEACAJAAD3AwAgCwAAiAQAIAwAAOcDACCaAgAAhgQAMJsCAAARABCcAgAAhgQAMLYCAQAAAAG-AkAAuwMAIb8CQAC7AwAh3gIBALgDACHfAgEA9AMAIeACAQD0AwAh4QIBAPQDACHiAgEA9AMAIeMCAQAAAAHkAgEAuAMAIeUCAQD0AwAhAwAAABEAIAEAABIAMAIAABMAIAEAAAARACADAAAACwAgAQAADAAwAgAADQAgDQoAAIAEACCaAgAAhQQAMJsCAAAXABCcAgAAhQQAMLYCAQDIAwAhtwIBALgDACG-AkAAuwMAIb8CQAC7AwAh0gIBAMgDACHXAgEAuAMAIdgCQAC7AwAh2QJAAMoDACHaAkAAygMAIQMKAACFBgAg2QIAAIYFACDaAgAAhgUAIA0KAACABAAgmgIAAIUEADCbAgAAFwAQnAIAAIUEADC2AgEAAAABtwIBALgDACG-AkAAuwMAIb8CQAC7AwAh0gIBAMgDACHXAgEAAAAB2AJAALsDACHZAkAAygMAIdoCQADKAwAhAwAAABcAIAEAABgAMAIAABkAIBAKAACABAAgDQAAgQQAIA8AAIIEACAQAACDBAAgEQAAhAQAIJoCAAD_AwAwmwIAABsAEJwCAAD_AwAwngIBALgDACG2AgEAyAMAIb4CQAC7AwAhvwJAALsDACHSAgEAyAMAIdMCAQDIAwAh1AICAMkDACHVAhAAuQMAIQUKAACFBgAgDQAAhgYAIA8AAIcGACAQAACIBgAgEQAAiQYAIBAKAACABAAgDQAAgQQAIA8AAIIEACAQAACDBAAgEQAAhAQAIJoCAAD_AwAwmwIAABsAEJwCAAD_AwAwngIBALgDACG2AgEAAAABvgJAALsDACG_AkAAuwMAIdICAQDIAwAh0wIBAMgDACHUAgIAyQMAIdUCEAC5AwAhAwAAABsAIAEAABwAMAIAAB0AIAMAAAAbACABAAAcADACAAAdACABAAAAGwAgCg4AAPoDACCaAgAA_QMAMJsCAAAhABCcAgAA_QMAMLYCAQDIAwAhvgJAALsDACHEAgEAyAMAIcYCAQC4AwAhxwIBALgDACHQAgAA_gPQAiIBDgAAhAYAIAoOAAD6AwAgmgIAAP0DADCbAgAAIQAQnAIAAP0DADC2AgEAAAABvgJAALsDACHEAgEAyAMAIcYCAQC4AwAhxwIBALgDACHQAgAA_gPQAiIDAAAAIQAgAQAAIgAwAgAAIwAgDQ4AAPoDACCaAgAA-wMAMJsCAAAlABCcAgAA-wMAMJ8CEAC5AwAhtgIBAMgDACG-AkAAuwMAIb8CQAC7AwAhxAIBAMgDACHGAgEA9AMAIccCAQD0AwAh0AIAAPwD0AIj0QIgAOYDACEEDgAAhAYAIMYCAACGBQAgxwIAAIYFACDQAgAAhgUAIA0OAAD6AwAgmgIAAPsDADCbAgAAJQAQnAIAAPsDADCfAhAAuQMAIbYCAQAAAAG-AkAAuwMAIb8CQAC7AwAhxAIBAMgDACHGAgEA9AMAIccCAQD0AwAh0AIAAPwD0AIj0QIgAOYDACEDAAAAJQAgAQAAJgAwAgAAJwAgDw4AAPoDACCaAgAA-QMAMJsCAAApABCcAgAA-QMAMLYCAQDIAwAhvgJAALsDACG_AkAAuwMAIcMCAQC4AwAhxAIBAMgDACHFAkAAuwMAIcYCAQC4AwAhxwIBALgDACHLAgEAuAMAIcwCAQC4AwAhzgIAANMDyQIiAQ4AAIQGACAQDgAA-gMAIJoCAAD5AwAwmwIAACkAEJwCAAD5AwAwtgIBAAAAAb4CQAC7AwAhvwJAALsDACHDAgEAAAABxAIBAMgDACHFAkAAuwMAIcYCAQC4AwAhxwIBALgDACHLAgEAuAMAIcwCAQC4AwAhzgIAANMDyQIi9wIAAPgDACADAAAAKQAgAQAAKgAwAgAAKwAgAQAAACEAIAEAAAAlACABAAAAKQAgAQAAAAsAIAEAAAAXACABAAAAGwAgAQAAAAMAIAEAAAAHACABAAAACwAgAQAAAAEAIA8EAAD1AwAgBQAA9gMAIAYAAPcDACCaAgAA8wMAMJsCAAA3ABCcAgAA8wMAMJ4CAQC4AwAhtgIBALgDACG3AgEAuAMAIb4CQAC7AwAhvwJAALsDACHdAgEAuAMAIfQCIADmAwAh9QIBAPQDACH2AgEA9AMAIQUEAACBBgAgBQAAggYAIAYAAIMGACD1AgAAhgUAIPYCAACGBQAgAwAAADcAIAEAADgAMAIAAAEAIAMAAAA3ACABAAA4ADACAAABACADAAAANwAgAQAAOAAwAgAAAQAgDAQAAP4FACAFAAD_BQAgBgAAgAYAIJ4CAQAAAAG2AgEAAAABtwIBAAAAAb4CQAAAAAG_AkAAAAAB3QIBAAAAAfQCIAAAAAH1AgEAAAAB9gIBAAAAAQEXAAA8ACAJngIBAAAAAbYCAQAAAAG3AgEAAAABvgJAAAAAAb8CQAAAAAHdAgEAAAAB9AIgAAAAAfUCAQAAAAH2AgEAAAABARcAAD4AMAEXAAA-ADAMBAAA2gUAIAUAANsFACAGAADcBQAgngIBAJQEACG2AgEAlAQAIbcCAQCUBAAhvgJAAJYEACG_AkAAlgQAId0CAQCUBAAh9AIgAM8EACH1AgEAogQAIfYCAQCiBAAhAgAAAAEAIBcAAEEAIAmeAgEAlAQAIbYCAQCUBAAhtwIBAJQEACG-AkAAlgQAIb8CQACWBAAh3QIBAJQEACH0AiAAzwQAIfUCAQCiBAAh9gIBAKIEACECAAAANwAgFwAAQwAgAgAAADcAIBcAAEMAIAMAAAABACAeAAA8ACAfAABBACABAAAAAQAgAQAAADcAIAUHAADXBQAgJAAA2QUAICUAANgFACD1AgAAhgUAIPYCAACGBQAgDJoCAADyAwAwmwIAAEoAEJwCAADyAwAwngIBAKsDACG2AgEAqwMAIbcCAQCrAwAhvgJAAK4DACG_AkAArgMAId0CAQCrAwAh9AIgANgDACH1AgEA1wMAIfYCAQDXAwAhAwAAADcAIAEAAEkAMCMAAEoAIAMAAAA3ACABAAA4ADACAAABACABAAAABQAgAQAAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIAkDAADWBQAgtgIBAAAAAb4CQAAAAAG_AkAAAAAB2AJAAAAAAdsCAQAAAAHxAgEAAAAB8gIBAAAAAfMCAQAAAAEBFwAAUgAgCLYCAQAAAAG-AkAAAAABvwJAAAAAAdgCQAAAAAHbAgEAAAAB8QIBAAAAAfICAQAAAAHzAgEAAAABARcAAFQAMAEXAABUADAJAwAA1QUAILYCAQCUBAAhvgJAAJYEACG_AkAAlgQAIdgCQACWBAAh2wIBAJQEACHxAgEAlAQAIfICAQCiBAAh8wIBAKIEACECAAAABQAgFwAAVwAgCLYCAQCUBAAhvgJAAJYEACG_AkAAlgQAIdgCQACWBAAh2wIBAJQEACHxAgEAlAQAIfICAQCiBAAh8wIBAKIEACECAAAAAwAgFwAAWQAgAgAAAAMAIBcAAFkAIAMAAAAFACAeAABSACAfAABXACABAAAABQAgAQAAAAMAIAUHAADSBQAgJAAA1AUAICUAANMFACDyAgAAhgUAIPMCAACGBQAgC5oCAADxAwAwmwIAAGAAEJwCAADxAwAwtgIBAKsDACG-AkAArgMAIb8CQACuAwAh2AJAAK4DACHbAgEAqwMAIfECAQCrAwAh8gIBANcDACHzAgEA1wMAIQMAAAADACABAABfADAjAABgACADAAAAAwAgAQAABAAwAgAABQAgAQAAAAkAIAEAAAAJACADAAAABwAgAQAACAAwAgAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACAOAwAA0QUAILYCAQAAAAG-AkAAAAABvwJAAAAAAdsCAQAAAAHoAgEAAAAB6QIBAAAAAeoCAQAAAAHrAgEAAAAB7AIBAAAAAe0CQAAAAAHuAkAAAAAB7wIBAAAAAfACAQAAAAEBFwAAaAAgDbYCAQAAAAG-AkAAAAABvwJAAAAAAdsCAQAAAAHoAgEAAAAB6QIBAAAAAeoCAQAAAAHrAgEAAAAB7AIBAAAAAe0CQAAAAAHuAkAAAAAB7wIBAAAAAfACAQAAAAEBFwAAagAwARcAAGoAMA4DAADQBQAgtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh2wIBAJQEACHoAgEAlAQAIekCAQCUBAAh6gIBAKIEACHrAgEAogQAIewCAQCiBAAh7QJAAO4EACHuAkAA7gQAIe8CAQCiBAAh8AIBAKIEACECAAAACQAgFwAAbQAgDbYCAQCUBAAhvgJAAJYEACG_AkAAlgQAIdsCAQCUBAAh6AIBAJQEACHpAgEAlAQAIeoCAQCiBAAh6wIBAKIEACHsAgEAogQAIe0CQADuBAAh7gJAAO4EACHvAgEAogQAIfACAQCiBAAhAgAAAAcAIBcAAG8AIAIAAAAHACAXAABvACADAAAACQAgHgAAaAAgHwAAbQAgAQAAAAkAIAEAAAAHACAKBwAAzQUAICQAAM8FACAlAADOBQAg6gIAAIYFACDrAgAAhgUAIOwCAACGBQAg7QIAAIYFACDuAgAAhgUAIO8CAACGBQAg8AIAAIYFACAQmgIAAPADADCbAgAAdgAQnAIAAPADADC2AgEAqwMAIb4CQACuAwAhvwJAAK4DACHbAgEAqwMAIegCAQCrAwAh6QIBAKsDACHqAgEA1wMAIesCAQDXAwAh7AIBANcDACHtAkAAwAMAIe4CQADAAwAh7wIBANcDACHwAgEA1wMAIQMAAAAHACABAAB1ADAjAAB2ACADAAAABwAgAQAACAAwAgAACQAgCZoCAADvAwAwmwIAAHwAEJwCAADvAwAwtgIBAAAAAb4CQAC7AwAhvwJAALsDACHYAkAAuwMAIeYCAQC4AwAh5wIBALgDACEBAAAAeQAgAQAAAHkAIAmaAgAA7wMAMJsCAAB8ABCcAgAA7wMAMLYCAQC4AwAhvgJAALsDACG_AkAAuwMAIdgCQAC7AwAh5gIBALgDACHnAgEAuAMAIQADAAAAfAAgAQAAfQAwAgAAeQAgAwAAAHwAIAEAAH0AMAIAAHkAIAMAAAB8ACABAAB9ADACAAB5ACAGtgIBAAAAAb4CQAAAAAG_AkAAAAAB2AJAAAAAAeYCAQAAAAHnAgEAAAABARcAAIEBACAGtgIBAAAAAb4CQAAAAAG_AkAAAAAB2AJAAAAAAeYCAQAAAAHnAgEAAAABARcAAIMBADABFwAAgwEAMAa2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHYAkAAlgQAIeYCAQCUBAAh5wIBAJQEACECAAAAeQAgFwAAhgEAIAa2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHYAkAAlgQAIeYCAQCUBAAh5wIBAJQEACECAAAAfAAgFwAAiAEAIAIAAAB8ACAXAACIAQAgAwAAAHkAIB4AAIEBACAfAACGAQAgAQAAAHkAIAEAAAB8ACADBwAAygUAICQAAMwFACAlAADLBQAgCZoCAADuAwAwmwIAAI8BABCcAgAA7gMAMLYCAQCrAwAhvgJAAK4DACG_AkAArgMAIdgCQACuAwAh5gIBAKsDACHnAgEAqwMAIQMAAAB8ACABAACOAQAwIwAAjwEAIAMAAAB8ACABAAB9ADACAAB5ACABAAAAEwAgAQAAABMAIAMAAAARACABAAASADACAAATACADAAAAEQAgAQAAEgAwAgAAEwAgAwAAABEAIAEAABIAMAIAABMAIA8IAADJBQAgCQAAgQUAIAsAAIIFACAMAACDBQAgtgIBAAAAAb4CQAAAAAG_AkAAAAAB3gIBAAAAAd8CAQAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAHjAgEAAAAB5AIBAAAAAeUCAQAAAAEBFwAAlwEAIAu2AgEAAAABvgJAAAAAAb8CQAAAAAHeAgEAAAAB3wIBAAAAAeACAQAAAAHhAgEAAAAB4gIBAAAAAeMCAQAAAAHkAgEAAAAB5QIBAAAAAQEXAACZAQAwARcAAJkBADABAAAADwAgDwgAAMgFACAJAACkBAAgCwAApQQAIAwAAKYEACC2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHeAgEAlAQAId8CAQCiBAAh4AIBAKIEACHhAgEAogQAIeICAQCiBAAh4wIBAJQEACHkAgEAlAQAIeUCAQCiBAAhAgAAABMAIBcAAJ0BACALtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh3gIBAJQEACHfAgEAogQAIeACAQCiBAAh4QIBAKIEACHiAgEAogQAIeMCAQCUBAAh5AIBAJQEACHlAgEAogQAIQIAAAARACAXAACfAQAgAgAAABEAIBcAAJ8BACABAAAADwAgAwAAABMAIB4AAJcBACAfAACdAQAgAQAAABMAIAEAAAARACAIBwAAxQUAICQAAMcFACAlAADGBQAg3wIAAIYFACDgAgAAhgUAIOECAACGBQAg4gIAAIYFACDlAgAAhgUAIA6aAgAA7QMAMJsCAACnAQAQnAIAAO0DADC2AgEAvgMAIb4CQACuAwAhvwJAAK4DACHeAgEAqwMAId8CAQDXAwAh4AIBANcDACHhAgEA1wMAIeICAQDXAwAh4wIBAKsDACHkAgEAqwMAIeUCAQDXAwAhAwAAABEAIAEAAKYBADAjAACnAQAgAwAAABEAIAEAABIAMAIAABMAIAEAAAANACABAAAADQAgAwAAAAsAIAEAAAwAMAIAAA0AIAMAAAALACABAAAMADACAAANACADAAAACwAgAQAADAAwAgAADQAgBgMAAP8EACAKAADEBQAgvgJAAAAAAdICAQAAAAHbAgEAAAAB3QIAAADdAgIBFwAArwEAIAS-AkAAAAAB0gIBAAAAAdsCAQAAAAHdAgAAAN0CAgEXAACxAQAwARcAALEBADAGAwAA_QQAIAoAAMMFACC-AkAAlgQAIdICAQCUBAAh2wIBAJQEACHdAgAA-wTdAiICAAAADQAgFwAAtAEAIAS-AkAAlgQAIdICAQCUBAAh2wIBAJQEACHdAgAA-wTdAiICAAAACwAgFwAAtgEAIAIAAAALACAXAAC2AQAgAwAAAA0AIB4AAK8BACAfAAC0AQAgAQAAAA0AIAEAAAALACADBwAAwAUAICQAAMIFACAlAADBBQAgB5oCAADpAwAwmwIAAL0BABCcAgAA6QMAML4CQACuAwAh0gIBAL4DACHbAgEAqwMAId0CAADqA90CIgMAAAALACABAAC8AQAwIwAAvQEAIAMAAAALACABAAAMADACAAANACABAAAAGQAgAQAAABkAIAMAAAAXACABAAAYADACAAAZACADAAAAFwAgAQAAGAAwAgAAGQAgAwAAABcAIAEAABgAMAIAABkAIAoKAAC_BQAgtgIBAAAAAbcCAQAAAAG-AkAAAAABvwJAAAAAAdICAQAAAAHXAgEAAAAB2AJAAAAAAdkCQAAAAAHaAkAAAAABARcAAMUBACAJtgIBAAAAAbcCAQAAAAG-AkAAAAABvwJAAAAAAdICAQAAAAHXAgEAAAAB2AJAAAAAAdkCQAAAAAHaAkAAAAABARcAAMcBADABFwAAxwEAMAoKAAC-BQAgtgIBAJQEACG3AgEAlAQAIb4CQACWBAAhvwJAAJYEACHSAgEAlAQAIdcCAQCUBAAh2AJAAJYEACHZAkAA7gQAIdoCQADuBAAhAgAAABkAIBcAAMoBACAJtgIBAJQEACG3AgEAlAQAIb4CQACWBAAhvwJAAJYEACHSAgEAlAQAIdcCAQCUBAAh2AJAAJYEACHZAkAA7gQAIdoCQADuBAAhAgAAABcAIBcAAMwBACACAAAAFwAgFwAAzAEAIAMAAAAZACAeAADFAQAgHwAAygEAIAEAAAAZACABAAAAFwAgBQcAALsFACAkAAC9BQAgJQAAvAUAINkCAACGBQAg2gIAAIYFACAMmgIAAOgDADCbAgAA0wEAEJwCAADoAwAwtgIBAL4DACG3AgEAqwMAIb4CQACuAwAhvwJAAK4DACHSAgEAvgMAIdcCAQCrAwAh2AJAAK4DACHZAkAAwAMAIdoCQADAAwAhAwAAABcAIAEAANIBADAjAADTAQAgAwAAABcAIAEAABgAMAIAABkAIAoMAADnAwAgmgIAAOUDADCbAgAA2QEAEJwCAADlAwAwngIBAAAAAbYCAQAAAAG-AkAAuwMAIb8CQAC7AwAh0QIgAOYDACHWAgEAAAABAQAAANYBACABAAAA1gEAIAoMAADnAwAgmgIAAOUDADCbAgAA2QEAEJwCAADlAwAwngIBALgDACG2AgEAyAMAIb4CQAC7AwAhvwJAALsDACHRAiAA5gMAIdYCAQC4AwAhAQwAALoFACADAAAA2QEAIAEAANoBADACAADWAQAgAwAAANkBACABAADaAQAwAgAA1gEAIAMAAADZAQAgAQAA2gEAMAIAANYBACAHDAAAuQUAIJ4CAQAAAAG2AgEAAAABvgJAAAAAAb8CQAAAAAHRAiAAAAAB1gIBAAAAAQEXAADeAQAgBp4CAQAAAAG2AgEAAAABvgJAAAAAAb8CQAAAAAHRAiAAAAAB1gIBAAAAAQEXAADgAQAwARcAAOABADAHDAAArwUAIJ4CAQCUBAAhtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh0QIgAM8EACHWAgEAlAQAIQIAAADWAQAgFwAA4wEAIAaeAgEAlAQAIbYCAQCUBAAhvgJAAJYEACG_AkAAlgQAIdECIADPBAAh1gIBAJQEACECAAAA2QEAIBcAAOUBACACAAAA2QEAIBcAAOUBACADAAAA1gEAIB4AAN4BACAfAADjAQAgAQAAANYBACABAAAA2QEAIAMHAACsBQAgJAAArgUAICUAAK0FACAJmgIAAOQDADCbAgAA7AEAEJwCAADkAwAwngIBAKsDACG2AgEAvgMAIb4CQACuAwAhvwJAAK4DACHRAiAA2AMAIdYCAQCrAwAhAwAAANkBACABAADrAQAwIwAA7AEAIAMAAADZAQAgAQAA2gEAMAIAANYBACABAAAAHQAgAQAAAB0AIAMAAAAbACABAAAcADACAAAdACADAAAAGwAgAQAAHAAwAgAAHQAgAwAAABsAIAEAABwAMAIAAB0AIA0KAACrBQAgDQAA4AQAIA8AAOEEACAQAADiBAAgEQAA4wQAIJ4CAQAAAAG2AgEAAAABvgJAAAAAAb8CQAAAAAHSAgEAAAAB0wIBAAAAAdQCAgAAAAHVAhAAAAABARcAAPQBACAIngIBAAAAAbYCAQAAAAG-AkAAAAABvwJAAAAAAdICAQAAAAHTAgEAAAAB1AICAAAAAdUCEAAAAAEBFwAA9gEAMAEXAAD2AQAwDQoAAKoFACANAACzBAAgDwAAtAQAIBAAALUEACARAAC2BAAgngIBAJQEACG2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHSAgEAlAQAIdMCAQCUBAAh1AICALEEACHVAhAAlQQAIQIAAAAdACAXAAD5AQAgCJ4CAQCUBAAhtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh0gIBAJQEACHTAgEAlAQAIdQCAgCxBAAh1QIQAJUEACECAAAAGwAgFwAA-wEAIAIAAAAbACAXAAD7AQAgAwAAAB0AIB4AAPQBACAfAAD5AQAgAQAAAB0AIAEAAAAbACAFBwAApQUAICQAAKgFACAlAACnBQAgpgEAAKYFACCnAQAAqQUAIAuaAgAA4wMAMJsCAACCAgAQnAIAAOMDADCeAgEAqwMAIbYCAQC-AwAhvgJAAK4DACG_AkAArgMAIdICAQC-AwAh0wIBAL4DACHUAgIAvwMAIdUCEACsAwAhAwAAABsAIAEAAIECADAjAACCAgAgAwAAABsAIAEAABwAMAIAAB0AIAEAAAAjACABAAAAIwAgAwAAACEAIAEAACIAMAIAACMAIAMAAAAhACABAAAiADACAAAjACADAAAAIQAgAQAAIgAwAgAAIwAgBw4AAKQFACC2AgEAAAABvgJAAAAAAcQCAQAAAAHGAgEAAAABxwIBAAAAAdACAAAA0AICARcAAIoCACAGtgIBAAAAAb4CQAAAAAHEAgEAAAABxgIBAAAAAccCAQAAAAHQAgAAANACAgEXAACMAgAwARcAAIwCADAHDgAAowUAILYCAQCUBAAhvgJAAJYEACHEAgEAlAQAIcYCAQCUBAAhxwIBAJQEACHQAgAA3ATQAiICAAAAIwAgFwAAjwIAIAa2AgEAlAQAIb4CQACWBAAhxAIBAJQEACHGAgEAlAQAIccCAQCUBAAh0AIAANwE0AIiAgAAACEAIBcAAJECACACAAAAIQAgFwAAkQIAIAMAAAAjACAeAACKAgAgHwAAjwIAIAEAAAAjACABAAAAIQAgAwcAAKAFACAkAACiBQAgJQAAoQUAIAmaAgAA3wMAMJsCAACYAgAQnAIAAN8DADC2AgEAvgMAIb4CQACuAwAhxAIBAL4DACHGAgEAqwMAIccCAQCrAwAh0AIAAOAD0AIiAwAAACEAIAEAAJcCADAjAACYAgAgAwAAACEAIAEAACIAMAIAACMAIAEAAAAnACABAAAAJwAgAwAAACUAIAEAACYAMAIAACcAIAMAAAAlACABAAAmADACAAAnACADAAAAJQAgAQAAJgAwAgAAJwAgCg4AAJ8FACCfAhAAAAABtgIBAAAAAb4CQAAAAAG_AkAAAAABxAIBAAAAAcYCAQAAAAHHAgEAAAAB0AIAAADQAgPRAiAAAAABARcAAKACACAJnwIQAAAAAbYCAQAAAAG-AkAAAAABvwJAAAAAAcQCAQAAAAHGAgEAAAABxwIBAAAAAdACAAAA0AID0QIgAAAAAQEXAACiAgAwARcAAKICADAKDgAAngUAIJ8CEACVBAAhtgIBAJQEACG-AkAAlgQAIb8CQACWBAAhxAIBAJQEACHGAgEAogQAIccCAQCiBAAh0AIAAM4E0AIj0QIgAM8EACECAAAAJwAgFwAApQIAIAmfAhAAlQQAIbYCAQCUBAAhvgJAAJYEACG_AkAAlgQAIcQCAQCUBAAhxgIBAKIEACHHAgEAogQAIdACAADOBNACI9ECIADPBAAhAgAAACUAIBcAAKcCACACAAAAJQAgFwAApwIAIAMAAAAnACAeAACgAgAgHwAApQIAIAEAAAAnACABAAAAJQAgCAcAAJkFACAkAACcBQAgJQAAmwUAIKYBAACaBQAgpwEAAJ0FACDGAgAAhgUAIMcCAACGBQAg0AIAAIYFACAMmgIAANUDADCbAgAArgIAEJwCAADVAwAwnwIQAKwDACG2AgEAvgMAIb4CQACuAwAhvwJAAK4DACHEAgEAvgMAIcYCAQDXAwAhxwIBANcDACHQAgAA1gPQAiPRAiAA2AMAIQMAAAAlACABAACtAgAwIwAArgIAIAMAAAAlACABAAAmADACAAAnACABAAAAKwAgAQAAACsAIAMAAAApACABAAAqADACAAArACADAAAAKQAgAQAAKgAwAgAAKwAgAwAAACkAIAEAACoAMAIAACsAIAwOAACYBQAgtgIBAAAAAb4CQAAAAAG_AkAAAAABwwIBAAAAAcQCAQAAAAHFAkAAAAABxgIBAAAAAccCAQAAAAHLAgEAAAABzAIBAAAAAc4CAAAAyQICARcAALYCACALtgIBAAAAAb4CQAAAAAG_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_AkAAlgQAIcACAQCUBAAhwQJAAO4EACHCAkAA7gQAIQIAAADgAgAgFwAA7QIAIAy2AgEAlAQAIbcCAQCUBAAhuAIBAJQEACG5AkAAlgQAIboCAgCxBAAhuwJAAJYEACG8AgIAsQQAIb4CQACWBAAhvwJAAJYEACHAAgEAlAQAIcECQADuBAAhwgJAAO4EACECAAAA4wIAIBcAAO8CACACAAAA4wIAIBcAAO8CACADAAAA4AIAIB4AAOgCACAfAADtAgAgAQAAAOACACABAAAA4wIAIAcHAACMBQAgJAAAjwUAICUAAI4FACCmAQAAjQUAIKcBAACQBQAgwQIAAIYFACDCAgAAhgUAIA-aAgAAzAMAMJsCAAD2AgAQnAIAAMwDADC2AgEAvgMAIbcCAQCrAwAhuAIBAKsDACG5AkAArgMAIboCAgC_AwAhuwJAAK4DACG8AgIAvwMAIb4CQACuAwAhvwJAAK4DACHAAgEAqwMAIcECQADAAwAhwgJAAMADACEDAAAA4wIAIAEAAPUCADAjAAD2AgAgAwAAAOMCACABAADkAgAwAgAA4AIAIA2aAgAAxwMAMJsCAAD8AgAQnAIAAMcDADC2AgEAAAABtwIBALgDACG4AgEAuAMAIbkCQAC7AwAhugICAMkDACG7AkAAuwMAIbwCAgDJAwAhvQJAAMoDACG-AkAAuwMAIb8CQAC7AwAhAQAAAPkCACABAAAA-QIAIA2aAgAAxwMAMJsCAAD8AgAQnAIAAMcDADC2AgEAyAMAIbcCAQC4AwAhuAIBALgDACG5AkAAuwMAIboCAgDJAwAhuwJAALsDACG8AgIAyQMAIb0CQADKAwAhvgJAALsDACG_AkAAuwMAIQG9AgAAhgUAIAMAAAD8AgAgAQAA_QIAMAIAAPkCACADAAAA_AIAIAEAAP0CADACAAD5AgAgAwAAAPwCACABAAD9AgAwAgAA-QIAIAq2AgEAAAABtwIBAAAAAbgCAQAAAAG5AkAAAAABugICAAAAAbsCQAAAAAG8AgIAAAABvQJAAAAAAb4CQAAAAAG_AkAAAAABARcAAIEDACAKtgIBAAAAAbcCAQAAAAG4AgEAAAABuQJAAAAAAboCAgAAAAG7AkAAAAABvAICAAAAAb0CQAAAAAG-AkAAAAABvwJAAAAAAQEXAACDAwAwARcAAIMDADAKtgIBAJQEACG3AgEAlAQAIbgCAQCUBAAhuQJAAJYEACG6AgIAsQQAIbsCQACWBAAhvAICALEEACG9AkAA7gQAIb4CQACWBAAhvwJAAJYEACECAAAA-QIAIBcAAIYDACAKtgIBAJQEACG3AgEAlAQAIbgCAQCUBAAhuQJAAJYEACG6AgIAsQQAIbsCQACWBAAhvAICALEEACG9AkAA7gQAIb4CQACWBAAhvwJAAJYEACECAAAA_AIAIBcAAIgDACACAAAA_AIAIBcAAIgDACADAAAA-QIAIB4AAIEDACAfAACGAwAgAQAAAPkCACABAAAA_AIAIAYHAACHBQAgJAAAigUAICUAAIkFACCmAQAAiAUAIKcBAACLBQAgvQIAAIYFACANmgIAAL0DADCbAgAAjwMAEJwCAAC9AwAwtgIBAL4DACG3AgEAqwMAIbgCAQCrAwAhuQJAAK4DACG6AgIAvwMAIbsCQACuAwAhvAICAL8DACG9AkAAwAMAIb4CQACuAwAhvwJAAK4DACEDAAAA_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_AkAAuwMAIQiiAgEAAAABowIBAAAABKQCAQAAAASlAgEAAAABpgIBAAAAAacCAQAAAAGoAgEAAAABqQIBAMsDACEIogICAAAAAaMCAgAAAASkAgIAAAAEpQICAAAAAaYCAgAAAAGnAgIAAAABqAICAAAAAakCAgCwAwAhCKICQAAAAAGjAkAAAAAFpAJAAAAABaUCQAAAAAGmAkAAAAABpwJAAAAAAagCQAAAAAGpAkAAwwMAIQiiAgEAAAABowIBAAAABKQCAQAAAASlAgEAAAABpgIBAAAAAacCAQAAAAGoAgEAAAABqQIBAMsDACEPmgIAAMwDADCbAgAA9gIAEJwCAADMAwAwtgIBAL4DACG3AgEAqwMAIbgCAQCrAwAhuQJAAK4DACG6AgIAvwMAIbsCQACuAwAhvAICAL8DACG-AkAArgMAIb8CQACuAwAhwAIBAKsDACHBAkAAwAMAIcICQADAAwAhD5oCAADNAwAwmwIAAOMCABCcAgAAzQMAMLYCAQDIAwAhtwIBALgDACG4AgEAuAMAIbkCQAC7AwAhugICAMkDACG7AkAAuwMAIbwCAgDJAwAhvgJAALsDACG_AkAAuwMAIcACAQC4AwAhwQJAAMoDACHCAkAAygMAIQ6aAgAAzgMAMJsCAADdAgAQnAIAAM4DADC2AgEAvgMAIcMCAQCrAwAhxAIBAL4DACHFAkAArgMAIcYCAQCrAwAhxwIBAKsDACHJAgAAzwPJAiLKAgAAzwPJAiLLAgEAqwMAIcwCAQCrAwAhzQJAAK4DACEHBwAAsAMAICQAANEDACAlAADRAwAgogIAAADJAgKjAgAAAMkCCKQCAAAAyQIIqQIAANADyQIiBwcAALADACAkAADRAwAgJQAA0QMAIKICAAAAyQICowIAAADJAgikAgAAAMkCCKkCAADQA8kCIgSiAgAAAMkCAqMCAAAAyQIIpAIAAADJAgipAgAA0QPJAiIOmgIAANIDADCbAgAAygIAEJwCAADSAwAwtgIBAMgDACHDAgEAuAMAIcQCAQDIAwAhxQJAALsDACHGAgEAuAMAIccCAQC4AwAhyQIAANMDyQIiygIAANMDyQIiywIBALgDACHMAgEAuAMAIc0CQAC7AwAhBKICAAAAyQICowIAAADJAgikAgAAAMkCCKkCAADRA8kCIg6aAgAA1AMAMJsCAADEAgAQnAIAANQDADC2AgEAvgMAIb4CQACuAwAhvwJAAK4DACHDAgEAqwMAIcQCAQC-AwAhxQJAAK4DACHGAgEAqwMAIccCAQCrAwAhywIBAKsDACHMAgEAqwMAIc4CAADPA8kCIgyaAgAA1QMAMJsCAACuAgAQnAIAANUDADCfAhAArAMAIbYCAQC-AwAhvgJAAK4DACG_AkAArgMAIcQCAQC-AwAhxgIBANcDACHHAgEA1wMAIdACAADWA9ACI9ECIADYAwAhBwcAAMIDACAkAADeAwAgJQAA3gMAIKICAAAA0AIDowIAAADQAgmkAgAAANACCakCAADdA9ACIw4HAADCAwAgJAAA3AMAICUAANwDACCiAgEAAAABowIBAAAABaQCAQAAAAWlAgEAAAABpgIBAAAAAacCAQAAAAGoAgEAAAABqQIBANsDACGwAgEAAAABsQIBAAAAAbICAQAAAAEFBwAAsAMAICQAANoDACAlAADaAwAgogIgAAAAAakCIADZAwAhBQcAALADACAkAADaAwAgJQAA2gMAIKICIAAAAAGpAiAA2QMAIQKiAiAAAAABqQIgANoDACEOBwAAwgMAICQAANwDACAlAADcAwAgogIBAAAAAaMCAQAAAAWkAgEAAAAFpQIBAAAAAaYCAQAAAAGnAgEAAAABqAIBAAAAAakCAQDbAwAhsAIBAAAAAbECAQAAAAGyAgEAAAABC6ICAQAAAAGjAgEAAAAFpAIBAAAABaUCAQAAAAGmAgEAAAABpwIBAAAAAagCAQAAAAGpAgEA3AMAIbACAQAAAAGxAgEAAAABsgIBAAAAAQcHAADCAwAgJAAA3gMAICUAAN4DACCiAgAAANACA6MCAAAA0AIJpAIAAADQAgmpAgAA3QPQAiMEogIAAADQAgOjAgAAANACCaQCAAAA0AIJqQIAAN4D0AIjCZoCAADfAwAwmwIAAJgCABCcAgAA3wMAMLYCAQC-AwAhvgJAAK4DACHEAgEAvgMAIcYCAQCrAwAhxwIBAKsDACHQAgAA4APQAiIHBwAAsAMAICQAAOIDACAlAADiAwAgogIAAADQAgKjAgAAANACCKQCAAAA0AIIqQIAAOED0AIiBwcAALADACAkAADiAwAgJQAA4gMAIKICAAAA0AICowIAAADQAgikAgAAANACCKkCAADhA9ACIgSiAgAAANACAqMCAAAA0AIIpAIAAADQAgipAgAA4gPQAiILmgIAAOMDADCbAgAAggIAEJwCAADjAwAwngIBAKsDACG2AgEAvgMAIb4CQACuAwAhvwJAAK4DACHSAgEAvgMAIdMCAQC-AwAh1AICAL8DACHVAhAArAMAIQmaAgAA5AMAMJsCAADsAQAQnAIAAOQDADCeAgEAqwMAIbYCAQC-AwAhvgJAAK4DACG_AkAArgMAIdECIADYAwAh1gIBAKsDACEKDAAA5wMAIJoCAADlAwAwmwIAANkBABCcAgAA5QMAMJ4CAQC4AwAhtgIBAMgDACG-AkAAuwMAIb8CQAC7AwAh0QIgAOYDACHWAgEAuAMAIQKiAiAAAAABqQIgANoDACEDswIAABsAILQCAAAbACC1AgAAGwAgDJoCAADoAwAwmwIAANMBABCcAgAA6AMAMLYCAQC-AwAhtwIBAKsDACG-AkAArgMAIb8CQACuAwAh0gIBAL4DACHXAgEAqwMAIdgCQACuAwAh2QJAAMADACHaAkAAwAMAIQeaAgAA6QMAMJsCAAC9AQAQnAIAAOkDADC-AkAArgMAIdICAQC-AwAh2wIBAKsDACHdAgAA6gPdAiIHBwAAsAMAICQAAOwDACAlAADsAwAgogIAAADdAgKjAgAAAN0CCKQCAAAA3QIIqQIAAOsD3QIiBwcAALADACAkAADsAwAgJQAA7AMAIKICAAAA3QICowIAAADdAgikAgAAAN0CCKkCAADrA90CIgSiAgAAAN0CAqMCAAAA3QIIpAIAAADdAgipAgAA7APdAiIOmgIAAO0DADCbAgAApwEAEJwCAADtAwAwtgIBAL4DACG-AkAArgMAIb8CQACuAwAh3gIBAKsDACHfAgEA1wMAIeACAQDXAwAh4QIBANcDACHiAgEA1wMAIeMCAQCrAwAh5AIBAKsDACHlAgEA1wMAIQmaAgAA7gMAMJsCAACPAQAQnAIAAO4DADC2AgEAqwMAIb4CQACuAwAhvwJAAK4DACHYAkAArgMAIeYCAQCrAwAh5wIBAKsDACEJmgIAAO8DADCbAgAAfAAQnAIAAO8DADC2AgEAuAMAIb4CQAC7AwAhvwJAALsDACHYAkAAuwMAIeYCAQC4AwAh5wIBALgDACEQmgIAAPADADCbAgAAdgAQnAIAAPADADC2AgEAqwMAIb4CQACuAwAhvwJAAK4DACHbAgEAqwMAIegCAQCrAwAh6QIBAKsDACHqAgEA1wMAIesCAQDXAwAh7AIBANcDACHtAkAAwAMAIe4CQADAAwAh7wIBANcDACHwAgEA1wMAIQuaAgAA8QMAMJsCAABgABCcAgAA8QMAMLYCAQCrAwAhvgJAAK4DACG_AkAArgMAIdgCQACuAwAh2wIBAKsDACHxAgEAqwMAIfICAQDXAwAh8wIBANcDACEMmgIAAPIDADCbAgAASgAQnAIAAPIDADCeAgEAqwMAIbYCAQCrAwAhtwIBAKsDACG-AkAArgMAIb8CQACuAwAh3QIBAKsDACH0AiAA2AMAIfUCAQDXAwAh9gIBANcDACEPBAAA9QMAIAUAAPYDACAGAAD3AwAgmgIAAPMDADCbAgAANwAQnAIAAPMDADCeAgEAuAMAIbYCAQC4AwAhtwIBALgDACG-AkAAuwMAIb8CQAC7AwAh3QIBALgDACH0AiAA5gMAIfUCAQD0AwAh9gIBAPQDACELogIBAAAAAaMCAQAAAAWkAgEAAAAFpQIBAAAAAaYCAQAAAAGnAgEAAAABqAIBAAAAAakCAQDcAwAhsAIBAAAAAbECAQAAAAGyAgEAAAABA7MCAAADACC0AgAAAwAgtQIAAAMAIAOzAgAABwAgtAIAAAcAILUCAAAHACADswIAAAsAILQCAAALACC1AgAACwAgA8QCAQAAAAHFAkAAAAABxgIBAAAAAQ8OAAD6AwAgmgIAAPkDADCbAgAAKQAQnAIAAPkDADC2AgEAyAMAIb4CQAC7AwAhvwJAALsDACHDAgEAuAMAIcQCAQDIAwAhxQJAALsDACHGAgEAuAMAIccCAQC4AwAhywIBALgDACHMAgEAuAMAIc4CAADTA8kCIhIKAACABAAgDQAAgQQAIA8AAIIEACAQAACDBAAgEQAAhAQAIJoCAAD_AwAwmwIAABsAEJwCAAD_AwAwngIBALgDACG2AgEAyAMAIb4CQAC7AwAhvwJAALsDACHSAgEAyAMAIdMCAQDIAwAh1AICAMkDACHVAhAAuQMAIfkCAAAbACD6AgAAGwAgDQ4AAPoDACCaAgAA-wMAMJsCAAAlABCcAgAA-wMAMJ8CEAC5AwAhtgIBAMgDACG-AkAAuwMAIb8CQAC7AwAhxAIBAMgDACHGAgEA9AMAIccCAQD0AwAh0AIAAPwD0AIj0QIgAOYDACEEogIAAADQAgOjAgAAANACCaQCAAAA0AIJqQIAAN4D0AIjCg4AAPoDACCaAgAA_QMAMJsCAAAhABCcAgAA_QMAMLYCAQDIAwAhvgJAALsDACHEAgEAyAMAIcYCAQC4AwAhxwIBALgDACHQAgAA_gPQAiIEogIAAADQAgKjAgAAANACCKQCAAAA0AIIqQIAAOID0AIiEAoAAIAEACANAACBBAAgDwAAggQAIBAAAIMEACARAACEBAAgmgIAAP8DADCbAgAAGwAQnAIAAP8DADCeAgEAuAMAIbYCAQDIAwAhvgJAALsDACG_AkAAuwMAIdICAQDIAwAh0wIBAMgDACHUAgIAyQMAIdUCEAC5AwAhFAgAAIcEACAJAAD3AwAgCwAAiAQAIAwAAOcDACCaAgAAhgQAMJsCAAARABCcAgAAhgQAMLYCAQDIAwAhvgJAALsDACG_AkAAuwMAId4CAQC4AwAh3wIBAPQDACHgAgEA9AMAIeECAQD0AwAh4gIBAPQDACHjAgEAuAMAIeQCAQC4AwAh5QIBAPQDACH5AgAAEQAg-gIAABEAIAwMAADnAwAgmgIAAOUDADCbAgAA2QEAEJwCAADlAwAwngIBALgDACG2AgEAyAMAIb4CQAC7AwAhvwJAALsDACHRAiAA5gMAIdYCAQC4AwAh-QIAANkBACD6AgAA2QEAIAOzAgAAIQAgtAIAACEAILUCAAAhACADswIAACUAILQCAAAlACC1AgAAJQAgA7MCAAApACC0AgAAKQAgtQIAACkAIA0KAACABAAgmgIAAIUEADCbAgAAFwAQnAIAAIUEADC2AgEAyAMAIbcCAQC4AwAhvgJAALsDACG_AkAAuwMAIdICAQDIAwAh1wIBALgDACHYAkAAuwMAIdkCQADKAwAh2gJAAMoDACESCAAAhwQAIAkAAPcDACALAACIBAAgDAAA5wMAIJoCAACGBAAwmwIAABEAEJwCAACGBAAwtgIBAMgDACG-AkAAuwMAIb8CQAC7AwAh3gIBALgDACHfAgEA9AMAIeACAQD0AwAh4QIBAPQDACHiAgEA9AMAIeMCAQC4AwAh5AIBALgDACHlAgEA9AMAIQsGAAC8AwAgmgIAALcDADCbAgAADwAQnAIAALcDADCdAgEAuAMAIZ4CAQC4AwAhnwIQALkDACGgAgAAugMAIKECQAC7AwAh-QIAAA8AIPoCAAAPACADswIAABcAILQCAAAXACC1AgAAFwAgAtICAQAAAAHbAgEAAAABCQMAAIwEACAKAACABAAgmgIAAIoEADCbAgAACwAQnAIAAIoEADC-AkAAuwMAIdICAQDIAwAh2wIBALgDACHdAgAAiwTdAiIEogIAAADdAgKjAgAAAN0CCKQCAAAA3QIIqQIAAOwD3QIiEQQAAPUDACAFAAD2AwAgBgAA9wMAIJoCAADzAwAwmwIAADcAEJwCAADzAwAwngIBALgDACG2AgEAuAMAIbcCAQC4AwAhvgJAALsDACG_AkAAuwMAId0CAQC4AwAh9AIgAOYDACH1AgEA9AMAIfYCAQD0AwAh-QIAADcAIPoCAAA3ACARAwAAjAQAIJoCAACNBAAwmwIAAAcAEJwCAACNBAAwtgIBALgDACG-AkAAuwMAIb8CQAC7AwAh2wIBALgDACHoAgEAuAMAIekCAQC4AwAh6gIBAPQDACHrAgEA9AMAIewCAQD0AwAh7QJAAMoDACHuAkAAygMAIe8CAQD0AwAh8AIBAPQDACEMAwAAjAQAIJoCAACOBAAwmwIAAAMAEJwCAACOBAAwtgIBALgDACG-AkAAuwMAIb8CQAC7AwAh2AJAALsDACHbAgEAuAMAIfECAQC4AwAh8gIBAPQDACHzAgEA9AMAIQAAAAAAAf4CAQAAAAEF_gIQAAAAAYQDEAAAAAGFAxAAAAABhgMQAAAAAYcDEAAAAAEB_gJAAAAAAQseAACYBAAwHwAAnQQAMPsCAACZBAAw_AIAAJoEADD9AgAAmwQAIP4CAACcBAAw_wIAAJwEADCAAwAAnAQAMIEDAACcBAAwggMAAJ4EADCDAwAAnwQAMA0JAACBBQAgCwAAggUAIAwAAIMFACC2AgEAAAABvgJAAAAAAb8CQAAAAAHeAgEAAAAB3wIBAAAAAeACAQAAAAHhAgEAAAAB4gIBAAAAAeMCAQAAAAHkAgEAAAABAgAAABMAIB4AAIAFACADAAAAEwAgHgAAgAUAIB8AAKMEACABFwAAzgYAMBIIAACHBAAgCQAA9wMAIAsAAIgEACAMAADnAwAgmgIAAIYEADCbAgAAEQAQnAIAAIYEADC2AgEAAAABvgJAALsDACG_AkAAuwMAId4CAQC4AwAh3wIBAPQDACHgAgEA9AMAIeECAQD0AwAh4gIBAPQDACHjAgEAAAAB5AIBALgDACHlAgEA9AMAIQIAAAATACAXAACjBAAgAgAAAKAEACAXAAChBAAgDpoCAACfBAAwmwIAAKAEABCcAgAAnwQAMLYCAQDIAwAhvgJAALsDACG_AkAAuwMAId4CAQC4AwAh3wIBAPQDACHgAgEA9AMAIeECAQD0AwAh4gIBAPQDACHjAgEAuAMAIeQCAQC4AwAh5QIBAPQDACEOmgIAAJ8EADCbAgAAoAQAEJwCAACfBAAwtgIBAMgDACG-AkAAuwMAIb8CQAC7AwAh3gIBALgDACHfAgEA9AMAIeACAQD0AwAh4QIBAPQDACHiAgEA9AMAIeMCAQC4AwAh5AIBALgDACHlAgEA9AMAIQq2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHeAgEAlAQAId8CAQCiBAAh4AIBAKIEACHhAgEAogQAIeICAQCiBAAh4wIBAJQEACHkAgEAlAQAIQH-AgEAAAABDQkAAKQEACALAAClBAAgDAAApgQAILYCAQCUBAAhvgJAAJYEACG_AkAAlgQAId4CAQCUBAAh3wIBAKIEACHgAgEAogQAIeECAQCiBAAh4gIBAKIEACHjAgEAlAQAIeQCAQCUBAAhCx4AAPEEADAfAAD2BAAw-wIAAPIEADD8AgAA8wQAMP0CAAD0BAAg_gIAAPUEADD_AgAA9QQAMIADAAD1BAAwgQMAAPUEADCCAwAA9wQAMIMDAAD4BAAwCx4AAOQEADAfAADpBAAw-wIAAOUEADD8AgAA5gQAMP0CAADnBAAg_gIAAOgEADD_AgAA6AQAMIADAADoBAAwgQMAAOgEADCCAwAA6gQAMIMDAADrBAAwCx4AAKcEADAfAACsBAAw-wIAAKgEADD8AgAAqQQAMP0CAACqBAAg_gIAAKsEADD_AgAAqwQAMIADAACrBAAwgQMAAKsEADCCAwAArQQAMIMDAACuBAAwCw0AAOAEACAPAADhBAAgEAAA4gQAIBEAAOMEACCeAgEAAAABtgIBAAAAAb4CQAAAAAG_AkAAAAAB0wIBAAAAAdQCAgAAAAHVAhAAAAABAgAAAB0AIB4AAN8EACADAAAAHQAgHgAA3wQAIB8AALIEACABFwAAzQYAMBAKAACABAAgDQAAgQQAIA8AAIIEACAQAACDBAAgEQAAhAQAIJoCAAD_AwAwmwIAABsAEJwCAAD_AwAwngIBALgDACG2AgEAAAABvgJAALsDACG_AkAAuwMAIdICAQDIAwAh0wIBAMgDACHUAgIAyQMAIdUCEAC5AwAhAgAAAB0AIBcAALIEACACAAAArwQAIBcAALAEACALmgIAAK4EADCbAgAArwQAEJwCAACuBAAwngIBALgDACG2AgEAyAMAIb4CQAC7AwAhvwJAALsDACHSAgEAyAMAIdMCAQDIAwAh1AICAMkDACHVAhAAuQMAIQuaAgAArgQAMJsCAACvBAAQnAIAAK4EADCeAgEAuAMAIbYCAQDIAwAhvgJAALsDACG_AkAAuwMAIdICAQDIAwAh0wIBAMgDACHUAgIAyQMAIdUCEAC5AwAhB54CAQCUBAAhtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh0wIBAJQEACHUAgIAsQQAIdUCEACVBAAhBf4CAgAAAAGEAwIAAAABhQMCAAAAAYYDAgAAAAGHAwIAAAABCw0AALMEACAPAAC0BAAgEAAAtQQAIBEAALYEACCeAgEAlAQAIbYCAQCUBAAhvgJAAJYEACG_AkAAlgQAIdMCAQCUBAAh1AICALEEACHVAhAAlQQAIQUeAADFBgAgHwAAywYAIPsCAADGBgAg_AIAAMoGACCBAwAA1gEAIAseAADSBAAwHwAA1wQAMPsCAADTBAAw_AIAANQEADD9AgAA1QQAIP4CAADWBAAw_wIAANYEADCAAwAA1gQAMIEDAADWBAAwggMAANgEADCDAwAA2QQAMAseAADEBAAwHwAAyQQAMPsCAADFBAAw_AIAAMYEADD9AgAAxwQAIP4CAADIBAAw_wIAAMgEADCAAwAAyAQAMIEDAADIBAAwggMAAMoEADCDAwAAywQAMAseAAC3BAAwHwAAvAQAMPsCAAC4BAAw_AIAALkEADD9AgAAugQAIP4CAAC7BAAw_wIAALsEADCAAwAAuwQAMIEDAAC7BAAwggMAAL0EADCDAwAAvgQAMAq2AgEAAAABvgJAAAAAAb8CQAAAAAHDAgEAAAABxQJAAAAAAcYCAQAAAAHHAgEAAAABywIBAAAAAcwCAQAAAAHOAgAAAMkCAgIAAAArACAeAADDBAAgAwAAACsAIB4AAMMEACAfAADCBAAgARcAAMkGADAQDgAA-gMAIJoCAAD5AwAwmwIAACkAEJwCAAD5AwAwtgIBAAAAAb4CQAC7AwAhvwJAALsDACHDAgEAAAABxAIBAMgDACHFAkAAuwMAIcYCAQC4AwAhxwIBALgDACHLAgEAuAMAIcwCAQC4AwAhzgIAANMDyQIi9wIAAPgDACACAAAAKwAgFwAAwgQAIAIAAAC_BAAgFwAAwAQAIA6aAgAAvgQAMJsCAAC_BAAQnAIAAL4EADC2AgEAyAMAIb4CQAC7AwAhvwJAALsDACHDAgEAuAMAIcQCAQDIAwAhxQJAALsDACHGAgEAuAMAIccCAQC4AwAhywIBALgDACHMAgEAuAMAIc4CAADTA8kCIg6aAgAAvgQAMJsCAAC_BAAQnAIAAL4EADC2AgEAyAMAIb4CQAC7AwAhvwJAALsDACHDAgEAuAMAIcQCAQDIAwAhxQJAALsDACHGAgEAuAMAIccCAQC4AwAhywIBALgDACHMAgEAuAMAIc4CAADTA8kCIgq2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHDAgEAlAQAIcUCQACWBAAhxgIBAJQEACHHAgEAlAQAIcsCAQCUBAAhzAIBAJQEACHOAgAAwQTJAiIB_gIAAADJAgIKtgIBAJQEACG-AkAAlgQAIb8CQACWBAAhwwIBAJQEACHFAkAAlgQAIcYCAQCUBAAhxwIBAJQEACHLAgEAlAQAIcwCAQCUBAAhzgIAAMEEyQIiCrYCAQAAAAG-AkAAAAABvwJAAAAAAcMCAQAAAAHFAkAAAAABxgIBAAAAAccCAQAAAAHLAgEAAAABzAIBAAAAAc4CAAAAyQICCJ8CEAAAAAG2AgEAAAABvgJAAAAAAb8CQAAAAAHGAgEAAAABxwIBAAAAAdACAAAA0AID0QIgAAAAAQIAAAAnACAeAADRBAAgAwAAACcAIB4AANEEACAfAADQBAAgARcAAMgGADANDgAA-gMAIJoCAAD7AwAwmwIAACUAEJwCAAD7AwAwnwIQALkDACG2AgEAAAABvgJAALsDACG_AkAAuwMAIcQCAQDIAwAhxgIBAPQDACHHAgEA9AMAIdACAAD8A9ACI9ECIADmAwAhAgAAACcAIBcAANAEACACAAAAzAQAIBcAAM0EACAMmgIAAMsEADCbAgAAzAQAEJwCAADLBAAwnwIQALkDACG2AgEAyAMAIb4CQAC7AwAhvwJAALsDACHEAgEAyAMAIcYCAQD0AwAhxwIBAPQDACHQAgAA_APQAiPRAiAA5gMAIQyaAgAAywQAMJsCAADMBAAQnAIAAMsEADCfAhAAuQMAIbYCAQDIAwAhvgJAALsDACG_AkAAuwMAIcQCAQDIAwAhxgIBAPQDACHHAgEA9AMAIdACAAD8A9ACI9ECIADmAwAhCJ8CEACVBAAhtgIBAJQEACG-AkAAlgQAIb8CQACWBAAhxgIBAKIEACHHAgEAogQAIdACAADOBNACI9ECIADPBAAhAf4CAAAA0AIDAf4CIAAAAAEInwIQAJUEACG2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHGAgEAogQAIccCAQCiBAAh0AIAAM4E0AIj0QIgAM8EACEInwIQAAAAAbYCAQAAAAG-AkAAAAABvwJAAAAAAcYCAQAAAAHHAgEAAAAB0AIAAADQAgPRAiAAAAABBbYCAQAAAAG-AkAAAAABxgIBAAAAAccCAQAAAAHQAgAAANACAgIAAAAjACAeAADeBAAgAwAAACMAIB4AAN4EACAfAADdBAAgARcAAMcGADAKDgAA-gMAIJoCAAD9AwAwmwIAACEAEJwCAAD9AwAwtgIBAAAAAb4CQAC7AwAhxAIBAMgDACHGAgEAuAMAIccCAQC4AwAh0AIAAP4D0AIiAgAAACMAIBcAAN0EACACAAAA2gQAIBcAANsEACAJmgIAANkEADCbAgAA2gQAEJwCAADZBAAwtgIBAMgDACG-AkAAuwMAIcQCAQDIAwAhxgIBALgDACHHAgEAuAMAIdACAAD-A9ACIgmaAgAA2QQAMJsCAADaBAAQnAIAANkEADC2AgEAyAMAIb4CQAC7AwAhxAIBAMgDACHGAgEAuAMAIccCAQC4AwAh0AIAAP4D0AIiBbYCAQCUBAAhvgJAAJYEACHGAgEAlAQAIccCAQCUBAAh0AIAANwE0AIiAf4CAAAA0AICBbYCAQCUBAAhvgJAAJYEACHGAgEAlAQAIccCAQCUBAAh0AIAANwE0AIiBbYCAQAAAAG-AkAAAAABxgIBAAAAAccCAQAAAAHQAgAAANACAgsNAADgBAAgDwAA4QQAIBAAAOIEACARAADjBAAgngIBAAAAAbYCAQAAAAG-AkAAAAABvwJAAAAAAdMCAQAAAAHUAgIAAAAB1QIQAAAAAQMeAADFBgAg-wIAAMYGACCBAwAA1gEAIAQeAADSBAAw-wIAANMEADD9AgAA1QQAIIEDAADWBAAwBB4AAMQEADD7AgAAxQQAMP0CAADHBAAggQMAAMgEADAEHgAAtwQAMPsCAAC4BAAw_QIAALoEACCBAwAAuwQAMAi2AgEAAAABtwIBAAAAAb4CQAAAAAG_AkAAAAAB1wIBAAAAAdgCQAAAAAHZAkAAAAAB2gJAAAAAAQIAAAAZACAeAADwBAAgAwAAABkAIB4AAPAEACAfAADvBAAgARcAAMQGADANCgAAgAQAIJoCAACFBAAwmwIAABcAEJwCAACFBAAwtgIBAAAAAbcCAQC4AwAhvgJAALsDACG_AkAAuwMAIdICAQDIAwAh1wIBAAAAAdgCQAC7AwAh2QJAAMoDACHaAkAAygMAIQIAAAAZACAXAADvBAAgAgAAAOwEACAXAADtBAAgDJoCAADrBAAwmwIAAOwEABCcAgAA6wQAMLYCAQDIAwAhtwIBALgDACG-AkAAuwMAIb8CQAC7AwAh0gIBAMgDACHXAgEAuAMAIdgCQAC7AwAh2QJAAMoDACHaAkAAygMAIQyaAgAA6wQAMJsCAADsBAAQnAIAAOsEADC2AgEAyAMAIbcCAQC4AwAhvgJAALsDACG_AkAAuwMAIdICAQDIAwAh1wIBALgDACHYAkAAuwMAIdkCQADKAwAh2gJAAMoDACEItgIBAJQEACG3AgEAlAQAIb4CQACWBAAhvwJAAJYEACHXAgEAlAQAIdgCQACWBAAh2QJAAO4EACHaAkAA7gQAIQH-AkAAAAABCLYCAQCUBAAhtwIBAJQEACG-AkAAlgQAIb8CQACWBAAh1wIBAJQEACHYAkAAlgQAIdkCQADuBAAh2gJAAO4EACEItgIBAAAAAbcCAQAAAAG-AkAAAAABvwJAAAAAAdcCAQAAAAHYAkAAAAAB2QJAAAAAAdoCQAAAAAEEAwAA_wQAIL4CQAAAAAHbAgEAAAAB3QIAAADdAgICAAAADQAgHgAA_gQAIAMAAAANACAeAAD-BAAgHwAA_AQAIAEXAADDBgAwCgMAAIwEACAKAACABAAgmgIAAIoEADCbAgAACwAQnAIAAIoEADC-AkAAuwMAIdICAQDIAwAh2wIBALgDACHdAgAAiwTdAiL4AgAAiQQAIAIAAAANACAXAAD8BAAgAgAAAPkEACAXAAD6BAAgB5oCAAD4BAAwmwIAAPkEABCcAgAA-AQAML4CQAC7AwAh0gIBAMgDACHbAgEAuAMAId0CAACLBN0CIgeaAgAA-AQAMJsCAAD5BAAQnAIAAPgEADC-AkAAuwMAIdICAQDIAwAh2wIBALgDACHdAgAAiwTdAiIDvgJAAJYEACHbAgEAlAQAId0CAAD7BN0CIgH-AgAAAN0CAgQDAAD9BAAgvgJAAJYEACHbAgEAlAQAId0CAAD7BN0CIgUeAAC-BgAgHwAAwQYAIPsCAAC_BgAg_AIAAMAGACCBAwAAAQAgBAMAAP8EACC-AkAAAAAB2wIBAAAAAd0CAAAA3QICAx4AAL4GACD7AgAAvwYAIIEDAAABACANCQAAgQUAIAsAAIIFACAMAACDBQAgtgIBAAAAAb4CQAAAAAG_AkAAAAAB3gIBAAAAAd8CAQAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAHjAgEAAAAB5AIBAAAAAQQeAADxBAAw-wIAAPIEADD9AgAA9AQAIIEDAAD1BAAwBB4AAOQEADD7AgAA5QQAMP0CAADnBAAggQMAAOgEADAEHgAApwQAMPsCAACoBAAw_QIAAKoEACCBAwAAqwQAMAQeAACYBAAw-wIAAJkEADD9AgAAmwQAIIEDAACcBAAwAAAAAAAAAAAAAAAAAAAAAAAABR4AALkGACAfAAC8BgAg-wIAALoGACD8AgAAuwYAIIEDAAAdACADHgAAuQYAIPsCAAC6BgAggQMAAB0AIAAAAAAABR4AALQGACAfAAC3BgAg-wIAALUGACD8AgAAtgYAIIEDAAAdACADHgAAtAYAIPsCAAC1BgAggQMAAB0AIAAAAAUeAACvBgAgHwAAsgYAIPsCAACwBgAg_AIAALEGACCBAwAAHQAgAx4AAK8GACD7AgAAsAYAIIEDAAAdACAAAAAAAAUeAACqBgAgHwAArQYAIPsCAACrBgAg_AIAAKwGACCBAwAAEwAgAx4AAKoGACD7AgAAqwYAIIEDAAATACAAAAALHgAAsAUAMB8AALQFADD7AgAAsQUAMPwCAACyBQAw_QIAALMFACD-AgAAqwQAMP8CAACrBAAwgAMAAKsEADCBAwAAqwQAMIIDAAC1BQAwgwMAAK4EADALCgAAqwUAIA8AAOEEACAQAADiBAAgEQAA4wQAIJ4CAQAAAAG2AgEAAAABvgJAAAAAAb8CQAAAAAHSAgEAAAAB1AICAAAAAdUCEAAAAAECAAAAHQAgHgAAuAUAIAMAAAAdACAeAAC4BQAgHwAAtwUAIAEXAACpBgAwAgAAAB0AIBcAALcFACACAAAArwQAIBcAALYFACAHngIBAJQEACG2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHSAgEAlAQAIdQCAgCxBAAh1QIQAJUEACELCgAAqgUAIA8AALQEACAQAAC1BAAgEQAAtgQAIJ4CAQCUBAAhtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh0gIBAJQEACHUAgIAsQQAIdUCEACVBAAhCwoAAKsFACAPAADhBAAgEAAA4gQAIBEAAOMEACCeAgEAAAABtgIBAAAAAb4CQAAAAAG_AkAAAAAB0gIBAAAAAdQCAgAAAAHVAhAAAAABBB4AALAFADD7AgAAsQUAMP0CAACzBQAggQMAAKsEADAAAAAABR4AAKQGACAfAACnBgAg-wIAAKUGACD8AgAApgYAIIEDAAATACADHgAApAYAIPsCAAClBgAggQMAABMAIAAAAAUeAACfBgAgHwAAogYAIPsCAACgBgAg_AIAAKEGACCBAwAAEwAgAx4AAJ8GACD7AgAAoAYAIIEDAAATACAAAAAHHgAAmgYAIB8AAJ0GACD7AgAAmwYAIPwCAACcBgAg_wIAAA8AIIADAAAPACCBAwAAkgMAIAMeAACaBgAg-wIAAJsGACCBAwAAkgMAIAAAAAAAAAUeAACVBgAgHwAAmAYAIPsCAACWBgAg_AIAAJcGACCBAwAAAQAgAx4AAJUGACD7AgAAlgYAIIEDAAABACAAAAAFHgAAkAYAIB8AAJMGACD7AgAAkQYAIPwCAACSBgAggQMAAAEAIAMeAACQBgAg-wIAAJEGACCBAwAAAQAgAAAACx4AAPIFADAfAAD3BQAw-wIAAPMFADD8AgAA9AUAMP0CAAD1BQAg_gIAAPYFADD_AgAA9gUAMIADAAD2BQAwgQMAAPYFADCCAwAA-AUAMIMDAAD5BQAwCx4AAOYFADAfAADrBQAw-wIAAOcFADD8AgAA6AUAMP0CAADpBQAg_gIAAOoFADD_AgAA6gUAMIADAADqBQAwgQMAAOoFADCCAwAA7AUAMIMDAADtBQAwCx4AAN0FADAfAADhBQAw-wIAAN4FADD8AgAA3wUAMP0CAADgBQAg_gIAAPUEADD_AgAA9QQAMIADAAD1BAAwgQMAAPUEADCCAwAA4gUAMIMDAAD4BAAwBAoAAMQFACC-AkAAAAAB0gIBAAAAAd0CAAAA3QICAgAAAA0AIB4AAOUFACADAAAADQAgHgAA5QUAIB8AAOQFACABFwAAjwYAMAIAAAANACAXAADkBQAgAgAAAPkEACAXAADjBQAgA74CQACWBAAh0gIBAJQEACHdAgAA-wTdAiIECgAAwwUAIL4CQACWBAAh0gIBAJQEACHdAgAA-wTdAiIECgAAxAUAIL4CQAAAAAHSAgEAAAAB3QIAAADdAgIMtgIBAAAAAb4CQAAAAAG_AkAAAAAB6AIBAAAAAekCAQAAAAHqAgEAAAAB6wIBAAAAAewCAQAAAAHtAkAAAAAB7gJAAAAAAe8CAQAAAAHwAgEAAAABAgAAAAkAIB4AAPEFACADAAAACQAgHgAA8QUAIB8AAPAFACABFwAAjgYAMBEDAACMBAAgmgIAAI0EADCbAgAABwAQnAIAAI0EADC2AgEAAAABvgJAALsDACG_AkAAuwMAIdsCAQC4AwAh6AIBALgDACHpAgEAuAMAIeoCAQD0AwAh6wIBAPQDACHsAgEA9AMAIe0CQADKAwAh7gJAAMoDACHvAgEA9AMAIfACAQD0AwAhAgAAAAkAIBcAAPAFACACAAAA7gUAIBcAAO8FACAQmgIAAO0FADCbAgAA7gUAEJwCAADtBQAwtgIBALgDACG-AkAAuwMAIb8CQAC7AwAh2wIBALgDACHoAgEAuAMAIekCAQC4AwAh6gIBAPQDACHrAgEA9AMAIewCAQD0AwAh7QJAAMoDACHuAkAAygMAIe8CAQD0AwAh8AIBAPQDACEQmgIAAO0FADCbAgAA7gUAEJwCAADtBQAwtgIBALgDACG-AkAAuwMAIb8CQAC7AwAh2wIBALgDACHoAgEAuAMAIekCAQC4AwAh6gIBAPQDACHrAgEA9AMAIewCAQD0AwAh7QJAAMoDACHuAkAAygMAIe8CAQD0AwAh8AIBAPQDACEMtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh6AIBAJQEACHpAgEAlAQAIeoCAQCiBAAh6wIBAKIEACHsAgEAogQAIe0CQADuBAAh7gJAAO4EACHvAgEAogQAIfACAQCiBAAhDLYCAQCUBAAhvgJAAJYEACG_AkAAlgQAIegCAQCUBAAh6QIBAJQEACHqAgEAogQAIesCAQCiBAAh7AIBAKIEACHtAkAA7gQAIe4CQADuBAAh7wIBAKIEACHwAgEAogQAIQy2AgEAAAABvgJAAAAAAb8CQAAAAAHoAgEAAAAB6QIBAAAAAeoCAQAAAAHrAgEAAAAB7AIBAAAAAe0CQAAAAAHuAkAAAAAB7wIBAAAAAfACAQAAAAEHtgIBAAAAAb4CQAAAAAG_AkAAAAAB2AJAAAAAAfECAQAAAAHyAgEAAAAB8wIBAAAAAQIAAAAFACAeAAD9BQAgAwAAAAUAIB4AAP0FACAfAAD8BQAgARcAAI0GADAMAwAAjAQAIJoCAACOBAAwmwIAAAMAEJwCAACOBAAwtgIBAAAAAb4CQAC7AwAhvwJAALsDACHYAkAAuwMAIdsCAQC4AwAh8QIBAAAAAfICAQD0AwAh8wIBAPQDACECAAAABQAgFwAA_AUAIAIAAAD6BQAgFwAA-wUAIAuaAgAA-QUAMJsCAAD6BQAQnAIAAPkFADC2AgEAuAMAIb4CQAC7AwAhvwJAALsDACHYAkAAuwMAIdsCAQC4AwAh8QIBALgDACHyAgEA9AMAIfMCAQD0AwAhC5oCAAD5BQAwmwIAAPoFABCcAgAA-QUAMLYCAQC4AwAhvgJAALsDACG_AkAAuwMAIdgCQAC7AwAh2wIBALgDACHxAgEAuAMAIfICAQD0AwAh8wIBAPQDACEHtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh2AJAAJYEACHxAgEAlAQAIfICAQCiBAAh8wIBAKIEACEHtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh2AJAAJYEACHxAgEAlAQAIfICAQCiBAAh8wIBAKIEACEHtgIBAAAAAb4CQAAAAAG_AkAAAAAB2AJAAAAAAfECAQAAAAHyAgEAAAAB8wIBAAAAAQQeAADyBQAw-wIAAPMFADD9AgAA9QUAIIEDAAD2BQAwBB4AAOYFADD7AgAA5wUAMP0CAADpBQAggQMAAOoFADAEHgAA3QUAMPsCAADeBQAw_QIAAOAFACCBAwAA9QQAMAAAAAUKAACFBgAgDQAAhgYAIA8AAIcGACAQAACIBgAgEQAAiQYAIAkIAACKBgAgCQAAgwYAIAsAAIsGACAMAAC6BQAg3wIAAIYFACDgAgAAhgUAIOECAACGBQAg4gIAAIYFACDlAgAAhgUAIAEMAAC6BQAgAAAAAQYAAIUFACAABQQAAIEGACAFAACCBgAgBgAAgwYAIPUCAACGBQAg9gIAAIYFACAHtgIBAAAAAb4CQAAAAAG_AkAAAAAB2AJAAAAAAfECAQAAAAHyAgEAAAAB8wIBAAAAAQy2AgEAAAABvgJAAAAAAb8CQAAAAAHoAgEAAAAB6QIBAAAAAeoCAQAAAAHrAgEAAAAB7AIBAAAAAe0CQAAAAAHuAkAAAAAB7wIBAAAAAfACAQAAAAEDvgJAAAAAAdICAQAAAAHdAgAAAN0CAgsFAAD_BQAgBgAAgAYAIJ4CAQAAAAG2AgEAAAABtwIBAAAAAb4CQAAAAAG_AkAAAAAB3QIBAAAAAfQCIAAAAAH1AgEAAAAB9gIBAAAAAQIAAAABACAeAACQBgAgAwAAADcAIB4AAJAGACAfAACUBgAgDQAAADcAIAUAANsFACAGAADcBQAgFwAAlAYAIJ4CAQCUBAAhtgIBAJQEACG3AgEAlAQAIb4CQACWBAAhvwJAAJYEACHdAgEAlAQAIfQCIADPBAAh9QIBAKIEACH2AgEAogQAIQsFAADbBQAgBgAA3AUAIJ4CAQCUBAAhtgIBAJQEACG3AgEAlAQAIb4CQACWBAAhvwJAAJYEACHdAgEAlAQAIfQCIADPBAAh9QIBAKIEACH2AgEAogQAIQsEAAD-BQAgBgAAgAYAIJ4CAQAAAAG2AgEAAAABtwIBAAAAAb4CQAAAAAG_AkAAAAAB3QIBAAAAAfQCIAAAAAH1AgEAAAAB9gIBAAAAAQIAAAABACAeAACVBgAgAwAAADcAIB4AAJUGACAfAACZBgAgDQAAADcAIAQAANoFACAGAADcBQAgFwAAmQYAIJ4CAQCUBAAhtgIBAJQEACG3AgEAlAQAIb4CQACWBAAhvwJAAJYEACHdAgEAlAQAIfQCIADPBAAh9QIBAKIEACH2AgEAogQAIQsEAADaBQAgBgAA3AUAIJ4CAQCUBAAhtgIBAJQEACG3AgEAlAQAIb4CQACWBAAhvwJAAJYEACHdAgEAlAQAIfQCIADPBAAh9QIBAKIEACH2AgEAogQAIQWdAgEAAAABngIBAAAAAZ8CEAAAAAGgAoAAAAABoQJAAAAAAQIAAACSAwAgHgAAmgYAIAMAAAAPACAeAACaBgAgHwAAngYAIAcAAAAPACAXAACeBgAgnQIBAJQEACGeAgEAlAQAIZ8CEACVBAAhoAKAAAAAAaECQACWBAAhBZ0CAQCUBAAhngIBAJQEACGfAhAAlQQAIaACgAAAAAGhAkAAlgQAIQ4IAADJBQAgCwAAggUAIAwAAIMFACC2AgEAAAABvgJAAAAAAb8CQAAAAAHeAgEAAAAB3wIBAAAAAeACAQAAAAHhAgEAAAAB4gIBAAAAAeMCAQAAAAHkAgEAAAAB5QIBAAAAAQIAAAATACAeAACfBgAgAwAAABEAIB4AAJ8GACAfAACjBgAgEAAAABEAIAgAAMgFACALAAClBAAgDAAApgQAIBcAAKMGACC2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHeAgEAlAQAId8CAQCiBAAh4AIBAKIEACHhAgEAogQAIeICAQCiBAAh4wIBAJQEACHkAgEAlAQAIeUCAQCiBAAhDggAAMgFACALAAClBAAgDAAApgQAILYCAQCUBAAhvgJAAJYEACG_AkAAlgQAId4CAQCUBAAh3wIBAKIEACHgAgEAogQAIeECAQCiBAAh4gIBAKIEACHjAgEAlAQAIeQCAQCUBAAh5QIBAKIEACEOCAAAyQUAIAkAAIEFACAMAACDBQAgtgIBAAAAAb4CQAAAAAG_AkAAAAAB3gIBAAAAAd8CAQAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAHjAgEAAAAB5AIBAAAAAeUCAQAAAAECAAAAEwAgHgAApAYAIAMAAAARACAeAACkBgAgHwAAqAYAIBAAAAARACAIAADIBQAgCQAApAQAIAwAAKYEACAXAACoBgAgtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh3gIBAJQEACHfAgEAogQAIeACAQCiBAAh4QIBAKIEACHiAgEAogQAIeMCAQCUBAAh5AIBAJQEACHlAgEAogQAIQ4IAADIBQAgCQAApAQAIAwAAKYEACC2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHeAgEAlAQAId8CAQCiBAAh4AIBAKIEACHhAgEAogQAIeICAQCiBAAh4wIBAJQEACHkAgEAlAQAIeUCAQCiBAAhB54CAQAAAAG2AgEAAAABvgJAAAAAAb8CQAAAAAHSAgEAAAAB1AICAAAAAdUCEAAAAAEOCAAAyQUAIAkAAIEFACALAACCBQAgtgIBAAAAAb4CQAAAAAG_AkAAAAAB3gIBAAAAAd8CAQAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAHjAgEAAAAB5AIBAAAAAeUCAQAAAAECAAAAEwAgHgAAqgYAIAMAAAARACAeAACqBgAgHwAArgYAIBAAAAARACAIAADIBQAgCQAApAQAIAsAAKUEACAXAACuBgAgtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh3gIBAJQEACHfAgEAogQAIeACAQCiBAAh4QIBAKIEACHiAgEAogQAIeMCAQCUBAAh5AIBAJQEACHlAgEAogQAIQ4IAADIBQAgCQAApAQAIAsAAKUEACC2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHeAgEAlAQAId8CAQCiBAAh4AIBAKIEACHhAgEAogQAIeICAQCiBAAh4wIBAJQEACHkAgEAlAQAIeUCAQCiBAAhDAoAAKsFACANAADgBAAgEAAA4gQAIBEAAOMEACCeAgEAAAABtgIBAAAAAb4CQAAAAAG_AkAAAAAB0gIBAAAAAdMCAQAAAAHUAgIAAAAB1QIQAAAAAQIAAAAdACAeAACvBgAgAwAAABsAIB4AAK8GACAfAACzBgAgDgAAABsAIAoAAKoFACANAACzBAAgEAAAtQQAIBEAALYEACAXAACzBgAgngIBAJQEACG2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHSAgEAlAQAIdMCAQCUBAAh1AICALEEACHVAhAAlQQAIQwKAACqBQAgDQAAswQAIBAAALUEACARAAC2BAAgngIBAJQEACG2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHSAgEAlAQAIdMCAQCUBAAh1AICALEEACHVAhAAlQQAIQwKAACrBQAgDQAA4AQAIA8AAOEEACARAADjBAAgngIBAAAAAbYCAQAAAAG-AkAAAAABvwJAAAAAAdICAQAAAAHTAgEAAAAB1AICAAAAAdUCEAAAAAECAAAAHQAgHgAAtAYAIAMAAAAbACAeAAC0BgAgHwAAuAYAIA4AAAAbACAKAACqBQAgDQAAswQAIA8AALQEACARAAC2BAAgFwAAuAYAIJ4CAQCUBAAhtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh0gIBAJQEACHTAgEAlAQAIdQCAgCxBAAh1QIQAJUEACEMCgAAqgUAIA0AALMEACAPAAC0BAAgEQAAtgQAIJ4CAQCUBAAhtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh0gIBAJQEACHTAgEAlAQAIdQCAgCxBAAh1QIQAJUEACEMCgAAqwUAIA0AAOAEACAPAADhBAAgEAAA4gQAIJ4CAQAAAAG2AgEAAAABvgJAAAAAAb8CQAAAAAHSAgEAAAAB0wIBAAAAAdQCAgAAAAHVAhAAAAABAgAAAB0AIB4AALkGACADAAAAGwAgHgAAuQYAIB8AAL0GACAOAAAAGwAgCgAAqgUAIA0AALMEACAPAAC0BAAgEAAAtQQAIBcAAL0GACCeAgEAlAQAIbYCAQCUBAAhvgJAAJYEACG_AkAAlgQAIdICAQCUBAAh0wIBAJQEACHUAgIAsQQAIdUCEACVBAAhDAoAAKoFACANAACzBAAgDwAAtAQAIBAAALUEACCeAgEAlAQAIbYCAQCUBAAhvgJAAJYEACG_AkAAlgQAIdICAQCUBAAh0wIBAJQEACHUAgIAsQQAIdUCEACVBAAhCwQAAP4FACAFAAD_BQAgngIBAAAAAbYCAQAAAAG3AgEAAAABvgJAAAAAAb8CQAAAAAHdAgEAAAAB9AIgAAAAAfUCAQAAAAH2AgEAAAABAgAAAAEAIB4AAL4GACADAAAANwAgHgAAvgYAIB8AAMIGACANAAAANwAgBAAA2gUAIAUAANsFACAXAADCBgAgngIBAJQEACG2AgEAlAQAIbcCAQCUBAAhvgJAAJYEACG_AkAAlgQAId0CAQCUBAAh9AIgAM8EACH1AgEAogQAIfYCAQCiBAAhCwQAANoFACAFAADbBQAgngIBAJQEACG2AgEAlAQAIbcCAQCUBAAhvgJAAJYEACG_AkAAlgQAId0CAQCUBAAh9AIgAM8EACH1AgEAogQAIfYCAQCiBAAhA74CQAAAAAHbAgEAAAAB3QIAAADdAgIItgIBAAAAAbcCAQAAAAG-AkAAAAABvwJAAAAAAdcCAQAAAAHYAkAAAAAB2QJAAAAAAdoCQAAAAAEGngIBAAAAAbYCAQAAAAG-AkAAAAABvwJAAAAAAdECIAAAAAHWAgEAAAABAgAAANYBACAeAADFBgAgBbYCAQAAAAG-AkAAAAABxgIBAAAAAccCAQAAAAHQAgAAANACAgifAhAAAAABtgIBAAAAAb4CQAAAAAG_AkAAAAABxgIBAAAAAccCAQAAAAHQAgAAANACA9ECIAAAAAEKtgIBAAAAAb4CQAAAAAG_AkAAAAABwwIBAAAAAcUCQAAAAAHGAgEAAAABxwIBAAAAAcsCAQAAAAHMAgEAAAABzgIAAADJAgIDAAAA2QEAIB4AAMUGACAfAADMBgAgCAAAANkBACAXAADMBgAgngIBAJQEACG2AgEAlAQAIb4CQACWBAAhvwJAAJYEACHRAiAAzwQAIdYCAQCUBAAhBp4CAQCUBAAhtgIBAJQEACG-AkAAlgQAIb8CQACWBAAh0QIgAM8EACHWAgEAlAQAIQeeAgEAAAABtgIBAAAAAb4CQAAAAAG_AkAAAAAB0wIBAAAAAdQCAgAAAAHVAhAAAAABCrYCAQAAAAG-AkAAAAABvwJAAAAAAd4CAQAAAAHfAgEAAAAB4AIBAAAAAeECAQAAAAHiAgEAAAAB4wIBAAAAAeQCAQAAAAEEBAYCBQoDBg4EBwARAQMAAQEDAAECAwABCgAFBQcAEAgQBgkWBAsaCAweCQIGFAUHAAcBBhUAAQoABQYHAA8KAAUNAAoPJAwQKA0RLA4CBwALDB8JAQwgAAEOAAkBDgAJAQ4ACQMPLQAQLgARLwADCTAACzEADDIAAwQzAAU0AAY1AAAAAAMHABYkABclABgAAAADBwAWJAAXJQAYAQMAAQEDAAEDBwAdJAAeJQAfAAAAAwcAHSQAHiUAHwEDAAEBAwABAwcAJCQAJSUAJgAAAAMHACQkACUlACYAAAADBwAsJAAtJQAuAAAAAwcALCQALSUALgEInAEGAQiiAQYDBwAzJAA0JQA1AAAAAwcAMyQANCUANQIDAAEKAAUCAwABCgAFAwcAOiQAOyUAPAAAAAMHADokADslADwBCgAFAQoABQMHAEEkAEIlAEMAAAADBwBBJABCJQBDAAADBwBIJABJJQBKAAAAAwcASCQASSUASgIKAAUNAAoCCgAFDQAKBQcATyQAUiUAU6YBAFCnAQBRAAAAAAAFBwBPJABSJQBTpgEAUKcBAFEBDgAJAQ4ACQMHAFgkAFklAFoAAAADBwBYJABZJQBaAQ4ACQEOAAkFBwBfJABiJQBjpgEAYKcBAGEAAAAAAAUHAF8kAGIlAGOmAQBgpwEAYQEOAAkBDgAJAwcAaCQAaSUAagAAAAMHAGgkAGklAGoAAAADBwBwJABxJQByAAAAAwcAcCQAcSUAcgAAAAUHAHgkAHslAHymAQB5pwEAegAAAAAABQcAeCQAeyUAfKYBAHmnAQB6AAAABQcAggEkAIUBJQCGAaYBAIMBpwEAhAEAAAAAAAUHAIIBJACFASUAhgGmAQCDAacBAIQBAAAFBwCLASQAjgElAI8BpgEAjAGnAQCNAQAAAAAABQcAiwEkAI4BJQCPAaYBAIwBpwEAjQESAgETNgEUOQEVOgEWOwEYPQEZPxIaQBMbQgEcRBIdRRQgRgEhRwEiSBImSxUnTBkoTQIpTgIqTwIrUAIsUQItUwIuVRIvVhowWAIxWhIyWxszXAI0XQI1XhI2YRw3YiA4YwM5ZAM6ZQM7ZgM8ZwM9aQM-axI_bCFAbgNBcBJCcSJDcgNEcwNFdBJGdyNHeCdIeihJeyhKfihLfyhMgAEoTYIBKE6EARJPhQEpUIcBKFGJARJSigEqU4sBKFSMAShVjQESVpABK1eRAS9YkgEFWZMBBVqUAQVblQEFXJYBBV2YAQVemgESX5sBMGCeAQVhoAESYqEBMWOjAQVkpAEFZaUBEmaoATJnqQE2aKoBBGmrAQRqrAEEa60BBGyuAQRtsAEEbrIBEm-zATdwtQEEcbcBEnK4AThzuQEEdLoBBHW7ARJ2vgE5d78BPXjAAQh5wQEIesIBCHvDAQh8xAEIfcYBCH7IARJ_yQE-gAHLAQiBAc0BEoIBzgE_gwHPAQiEAdABCIUB0QEShgHUAUCHAdUBRIgB1wEKiQHYAQqKAdsBCosB3AEKjAHdAQqNAd8BCo4B4QESjwHiAUWQAeQBCpEB5gESkgHnAUaTAegBCpQB6QEKlQHqARKWAe0BR5cB7gFLmAHvAQmZAfABCZoB8QEJmwHyAQmcAfMBCZ0B9QEJngH3ARKfAfgBTKAB-gEJoQH8ARKiAf0BTaMB_gEJpAH_AQmlAYACEqgBgwJOqQGEAlSqAYUCDKsBhgIMrAGHAgytAYgCDK4BiQIMrwGLAgywAY0CErEBjgJVsgGQAgyzAZICErQBkwJWtQGUAgy2AZUCDLcBlgISuAGZAle5AZoCW7oBmwINuwGcAg28AZ0CDb0BngINvgGfAg2_AaECDcABowISwQGkAlzCAaYCDcMBqAISxAGpAl3FAaoCDcYBqwINxwGsAhLIAa8CXskBsAJkygGxAg7LAbICDswBswIOzQG0Ag7OAbUCDs8BtwIO0AG5AhLRAboCZdIBvAIO0wG-AhLUAb8CZtUBwAIO1gHBAg7XAcICEtgBxQJn2QHGAmvaAcgCbNsByQJs3AHMAmzdAc0CbN4BzgJs3wHQAmzgAdICEuEB0wJt4gHVAmzjAdcCEuQB2AJu5QHZAmzmAdoCbOcB2wIS6AHeAm_pAd8Cc-oB4QJ06wHiAnTsAeUCdO0B5gJ07gHnAnTvAekCdPAB6wIS8QHsAnXyAe4CdPMB8AIS9AHxAnb1AfICdPYB8wJ09wH0AhL4AfcCd_kB-AJ9-gH6An77AfsCfvwB_gJ-_QH_An7-AYADfv8BggN-gAKEAxKBAoUDf4IChwN-gwKJAxKEAooDgAGFAosDfoYCjAN-hwKNAxKIApADgQGJApEDhwGKApMDBosClAMGjAKWAwaNApcDBo4CmAMGjwKaAwaQApwDEpECnQOIAZICnwMGkwKhAxKUAqIDiQGVAqMDBpYCpAMGlwKlAxKYAqgDigGZAqkDkAE" + strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"user\",\"sessions\",\"accounts\",\"complexes\",\"_count\",\"plan\",\"users\",\"complex\",\"invitations\",\"courts\",\"sport\",\"court\",\"availabilities\",\"priceRules\",\"bookings\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"data\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"create\",\"update\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"having\",\"_min\",\"_max\",\"User.groupBy\",\"User.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"Verification.findUnique\",\"Verification.findUniqueOrThrow\",\"Verification.findFirst\",\"Verification.findFirstOrThrow\",\"Verification.findMany\",\"Verification.createOne\",\"Verification.createMany\",\"Verification.createManyAndReturn\",\"Verification.updateOne\",\"Verification.updateMany\",\"Verification.updateManyAndReturn\",\"Verification.upsertOne\",\"Verification.deleteOne\",\"Verification.deleteMany\",\"Verification.groupBy\",\"Verification.aggregate\",\"Complex.findUnique\",\"Complex.findUniqueOrThrow\",\"Complex.findFirst\",\"Complex.findFirstOrThrow\",\"Complex.findMany\",\"Complex.createOne\",\"Complex.createMany\",\"Complex.createManyAndReturn\",\"Complex.updateOne\",\"Complex.updateMany\",\"Complex.updateManyAndReturn\",\"Complex.upsertOne\",\"Complex.deleteOne\",\"Complex.deleteMany\",\"Complex.groupBy\",\"Complex.aggregate\",\"ComplexUser.findUnique\",\"ComplexUser.findUniqueOrThrow\",\"ComplexUser.findFirst\",\"ComplexUser.findFirstOrThrow\",\"ComplexUser.findMany\",\"ComplexUser.createOne\",\"ComplexUser.createMany\",\"ComplexUser.createManyAndReturn\",\"ComplexUser.updateOne\",\"ComplexUser.updateMany\",\"ComplexUser.updateManyAndReturn\",\"ComplexUser.upsertOne\",\"ComplexUser.deleteOne\",\"ComplexUser.deleteMany\",\"ComplexUser.groupBy\",\"ComplexUser.aggregate\",\"ComplexInvitation.findUnique\",\"ComplexInvitation.findUniqueOrThrow\",\"ComplexInvitation.findFirst\",\"ComplexInvitation.findFirstOrThrow\",\"ComplexInvitation.findMany\",\"ComplexInvitation.createOne\",\"ComplexInvitation.createMany\",\"ComplexInvitation.createManyAndReturn\",\"ComplexInvitation.updateOne\",\"ComplexInvitation.updateMany\",\"ComplexInvitation.updateManyAndReturn\",\"ComplexInvitation.upsertOne\",\"ComplexInvitation.deleteOne\",\"ComplexInvitation.deleteMany\",\"ComplexInvitation.groupBy\",\"ComplexInvitation.aggregate\",\"Sport.findUnique\",\"Sport.findUniqueOrThrow\",\"Sport.findFirst\",\"Sport.findFirstOrThrow\",\"Sport.findMany\",\"Sport.createOne\",\"Sport.createMany\",\"Sport.createManyAndReturn\",\"Sport.updateOne\",\"Sport.updateMany\",\"Sport.updateManyAndReturn\",\"Sport.upsertOne\",\"Sport.deleteOne\",\"Sport.deleteMany\",\"Sport.groupBy\",\"Sport.aggregate\",\"Court.findUnique\",\"Court.findUniqueOrThrow\",\"Court.findFirst\",\"Court.findFirstOrThrow\",\"Court.findMany\",\"Court.createOne\",\"Court.createMany\",\"Court.createManyAndReturn\",\"Court.updateOne\",\"Court.updateMany\",\"Court.updateManyAndReturn\",\"Court.upsertOne\",\"Court.deleteOne\",\"Court.deleteMany\",\"_avg\",\"_sum\",\"Court.groupBy\",\"Court.aggregate\",\"CourtAvailability.findUnique\",\"CourtAvailability.findUniqueOrThrow\",\"CourtAvailability.findFirst\",\"CourtAvailability.findFirstOrThrow\",\"CourtAvailability.findMany\",\"CourtAvailability.createOne\",\"CourtAvailability.createMany\",\"CourtAvailability.createManyAndReturn\",\"CourtAvailability.updateOne\",\"CourtAvailability.updateMany\",\"CourtAvailability.updateManyAndReturn\",\"CourtAvailability.upsertOne\",\"CourtAvailability.deleteOne\",\"CourtAvailability.deleteMany\",\"CourtAvailability.groupBy\",\"CourtAvailability.aggregate\",\"CourtPriceRule.findUnique\",\"CourtPriceRule.findUniqueOrThrow\",\"CourtPriceRule.findFirst\",\"CourtPriceRule.findFirstOrThrow\",\"CourtPriceRule.findMany\",\"CourtPriceRule.createOne\",\"CourtPriceRule.createMany\",\"CourtPriceRule.createManyAndReturn\",\"CourtPriceRule.updateOne\",\"CourtPriceRule.updateMany\",\"CourtPriceRule.updateManyAndReturn\",\"CourtPriceRule.upsertOne\",\"CourtPriceRule.deleteOne\",\"CourtPriceRule.deleteMany\",\"CourtPriceRule.groupBy\",\"CourtPriceRule.aggregate\",\"CourtBooking.findUnique\",\"CourtBooking.findUniqueOrThrow\",\"CourtBooking.findFirst\",\"CourtBooking.findFirstOrThrow\",\"CourtBooking.findMany\",\"CourtBooking.createOne\",\"CourtBooking.createMany\",\"CourtBooking.createManyAndReturn\",\"CourtBooking.updateOne\",\"CourtBooking.updateMany\",\"CourtBooking.updateManyAndReturn\",\"CourtBooking.upsertOne\",\"CourtBooking.deleteOne\",\"CourtBooking.deleteMany\",\"CourtBooking.groupBy\",\"CourtBooking.aggregate\",\"CourtBookingLog.findUnique\",\"CourtBookingLog.findUniqueOrThrow\",\"CourtBookingLog.findFirst\",\"CourtBookingLog.findFirstOrThrow\",\"CourtBookingLog.findMany\",\"CourtBookingLog.createOne\",\"CourtBookingLog.createMany\",\"CourtBookingLog.createManyAndReturn\",\"CourtBookingLog.updateOne\",\"CourtBookingLog.updateMany\",\"CourtBookingLog.updateManyAndReturn\",\"CourtBookingLog.upsertOne\",\"CourtBookingLog.deleteOne\",\"CourtBookingLog.deleteMany\",\"CourtBookingLog.groupBy\",\"CourtBookingLog.aggregate\",\"PasswordResetRequest.findUnique\",\"PasswordResetRequest.findUniqueOrThrow\",\"PasswordResetRequest.findFirst\",\"PasswordResetRequest.findFirstOrThrow\",\"PasswordResetRequest.findMany\",\"PasswordResetRequest.createOne\",\"PasswordResetRequest.createMany\",\"PasswordResetRequest.createManyAndReturn\",\"PasswordResetRequest.updateOne\",\"PasswordResetRequest.updateMany\",\"PasswordResetRequest.updateManyAndReturn\",\"PasswordResetRequest.upsertOne\",\"PasswordResetRequest.deleteOne\",\"PasswordResetRequest.deleteMany\",\"PasswordResetRequest.groupBy\",\"PasswordResetRequest.aggregate\",\"Plan.findUnique\",\"Plan.findUniqueOrThrow\",\"Plan.findFirst\",\"Plan.findFirstOrThrow\",\"Plan.findMany\",\"Plan.createOne\",\"Plan.createMany\",\"Plan.createManyAndReturn\",\"Plan.updateOne\",\"Plan.updateMany\",\"Plan.updateManyAndReturn\",\"Plan.upsertOne\",\"Plan.deleteOne\",\"Plan.deleteMany\",\"Plan.groupBy\",\"Plan.aggregate\",\"AND\",\"OR\",\"NOT\",\"code\",\"name\",\"price\",\"rules\",\"lastUpdatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"string_contains\",\"string_starts_with\",\"string_ends_with\",\"array_starts_with\",\"array_ends_with\",\"array_contains\",\"contains\",\"startsWith\",\"endsWith\",\"every\",\"some\",\"none\",\"id\",\"email\",\"otpHash\",\"otpExpiresAt\",\"otpAttempts\",\"otpLastSentAt\",\"otpResendCount\",\"usedAt\",\"createdAt\",\"updatedAt\",\"bookingCode\",\"courtId\",\"bookingDate\",\"startTime\",\"endTime\",\"CourtBookingStatus\",\"previousStatus\",\"newStatus\",\"customerName\",\"customerPhone\",\"customerEmail\",\"changedAt\",\"status\",\"DayOfWeek\",\"dayOfWeek\",\"isActive\",\"complexId\",\"sportId\",\"slotDurationMinutes\",\"basePrice\",\"slug\",\"tokenHash\",\"expiresAt\",\"acceptedAt\",\"revokedAt\",\"userId\",\"ComplexUserRole\",\"role\",\"complexName\",\"physicalAddress\",\"city\",\"state\",\"country\",\"complexSlug\",\"adminEmail\",\"planCode\",\"identifier\",\"value\",\"accountId\",\"providerId\",\"accessToken\",\"refreshToken\",\"idToken\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"scope\",\"password\",\"token\",\"ipAddress\",\"userAgent\",\"emailVerified\",\"image\",\"phone\",\"courtId_bookingDate_startTime\",\"complexId_userId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"), + graph: "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-AgAA4wO-AiIBDgAA5AUAIAoOAADfAwAgigIAAOIDADCLAgAAIQAQjAIAAOIDADCmAgEAAAABrgJAAKIDACGxAgEArwMAIbMCAQCfAwAhtAIBAJ8DACG-AgAA4wO-AiIDAAAAIQAgAQAAIgAwAgAAIwAgDQ4AAN8DACCKAgAA4AMAMIsCAAAlABCMAgAA4AMAMI8CEACgAwAhpgIBAK8DACGuAkAAogMAIa8CQACiAwAhsQIBAK8DACGzAgEAvAMAIbQCAQC8AwAhvgIAAOEDvgIjvwIgAMwDACEEDgAA5AUAILMCAADrBAAgtAIAAOsEACC-AgAA6wQAIA0OAADfAwAgigIAAOADADCLAgAAJQAQjAIAAOADADCPAhAAoAMAIaYCAQAAAAGuAkAAogMAIa8CQACiAwAhsQIBAK8DACGzAgEAvAMAIbQCAQC8AwAhvgIAAOEDvgIjvwIgAMwDACEDAAAAJQAgAQAAJgAwAgAAJwAgEA4AAN8DACCKAgAA3gMAMIsCAAApABCMAgAA3gMAMKYCAQCvAwAhrgJAAKIDACGvAkAAogMAIbACAQCfAwAhsQIBAK8DACGyAkAAogMAIbMCAQCfAwAhtAIBAJ8DACG4AgEAnwMAIbkCAQCfAwAhugIBALwDACG8AgAAuwO2AiICDgAA5AUAILoCAADrBAAgEQ4AAN8DACCKAgAA3gMAMIsCAAApABCMAgAA3gMAMKYCAQAAAAGuAkAAogMAIa8CQACiAwAhsAIBAAAAAbECAQCvAwAhsgJAAKIDACGzAgEAnwMAIbQCAQCfAwAhuAIBAJ8DACG5AgEAnwMAIboCAQC8AwAhvAIAALsDtgIi5QIAAN0DACADAAAAKQAgAQAAKgAwAgAAKwAgAQAAACEAIAEAAAAlACABAAAAKQAgAQAAAAsAIAEAAAAXACABAAAAGwAgAQAAAAMAIAEAAAAHACABAAAACwAgAQAAAAEAIA8EAADaAwAgBQAA2wMAIAYAANwDACCKAgAA2QMAMIsCAAA3ABCMAgAA2QMAMI4CAQCfAwAhpgIBAJ8DACGnAgEAnwMAIa4CQACiAwAhrwJAAKIDACHLAgEAnwMAIeICIADMAwAh4wIBALwDACHkAgEAvAMAIQUEAADhBQAgBQAA4gUAIAYAAOMFACDjAgAA6wQAIOQCAADrBAAgAwAAADcAIAEAADgAMAIAAAEAIAMAAAA3ACABAAA4ADACAAABACADAAAANwAgAQAAOAAwAgAAAQAgDAQAAN4FACAFAADfBQAgBgAA4AUAII4CAQAAAAGmAgEAAAABpwIBAAAAAa4CQAAAAAGvAkAAAAABywIBAAAAAeICIAAAAAHjAgEAAAAB5AIBAAAAAQEXAAA8ACAJjgIBAAAAAaYCAQAAAAGnAgEAAAABrgJAAAAAAa8CQAAAAAHLAgEAAAAB4gIgAAAAAeMCAQAAAAHkAgEAAAABARcAAD4AMAEXAAA-ADAMBAAAugUAIAUAALsFACAGAAC8BQAgjgIBAPkDACGmAgEA-QMAIacCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcsCAQD5AwAh4gIgALQEACHjAgEAhwQAIeQCAQCHBAAhAgAAAAEAIBcAAEEAIAmOAgEA-QMAIaYCAQD5AwAhpwIBAPkDACGuAkAA-wMAIa8CQAD7AwAhywIBAPkDACHiAiAAtAQAIeMCAQCHBAAh5AIBAIcEACECAAAANwAgFwAAQwAgAgAAADcAIBcAAEMAIAMAAAABACAeAAA8ACAfAABBACABAAAAAQAgAQAAADcAIAUHAAC3BQAgJAAAuQUAICUAALgFACDjAgAA6wQAIOQCAADrBAAgDIoCAADYAwAwiwIAAEoAEIwCAADYAwAwjgIBAJIDACGmAgEAkgMAIacCAQCSAwAhrgJAAJUDACGvAkAAlQMAIcsCAQCSAwAh4gIgAMADACHjAgEAtQMAIeQCAQC1AwAhAwAAADcAIAEAAEkAMCMAAEoAIAMAAAA3ACABAAA4ADACAAABACABAAAABQAgAQAAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIAkDAAC2BQAgpgIBAAAAAa4CQAAAAAGvAkAAAAABxgJAAAAAAckCAQAAAAHfAgEAAAAB4AIBAAAAAeECAQAAAAEBFwAAUgAgCKYCAQAAAAGuAkAAAAABrwJAAAAAAcYCQAAAAAHJAgEAAAAB3wIBAAAAAeACAQAAAAHhAgEAAAABARcAAFQAMAEXAABUADAJAwAAtQUAIKYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcYCQAD7AwAhyQIBAPkDACHfAgEA-QMAIeACAQCHBAAh4QIBAIcEACECAAAABQAgFwAAVwAgCKYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcYCQAD7AwAhyQIBAPkDACHfAgEA-QMAIeACAQCHBAAh4QIBAIcEACECAAAAAwAgFwAAWQAgAgAAAAMAIBcAAFkAIAMAAAAFACAeAABSACAfAABXACABAAAABQAgAQAAAAMAIAUHAACyBQAgJAAAtAUAICUAALMFACDgAgAA6wQAIOECAADrBAAgC4oCAADXAwAwiwIAAGAAEIwCAADXAwAwpgIBAJIDACGuAkAAlQMAIa8CQACVAwAhxgJAAJUDACHJAgEAkgMAId8CAQCSAwAh4AIBALUDACHhAgEAtQMAIQMAAAADACABAABfADAjAABgACADAAAAAwAgAQAABAAwAgAABQAgAQAAAAkAIAEAAAAJACADAAAABwAgAQAACAAwAgAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACAOAwAAsQUAIKYCAQAAAAGuAkAAAAABrwJAAAAAAckCAQAAAAHWAgEAAAAB1wIBAAAAAdgCAQAAAAHZAgEAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAAB3QIBAAAAAd4CAQAAAAEBFwAAaAAgDaYCAQAAAAGuAkAAAAABrwJAAAAAAckCAQAAAAHWAgEAAAAB1wIBAAAAAdgCAQAAAAHZAgEAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAAB3QIBAAAAAd4CAQAAAAEBFwAAagAwARcAAGoAMA4DAACwBQAgpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhyQIBAPkDACHWAgEA-QMAIdcCAQD5AwAh2AIBAIcEACHZAgEAhwQAIdoCAQCHBAAh2wJAANMEACHcAkAA0wQAId0CAQCHBAAh3gIBAIcEACECAAAACQAgFwAAbQAgDaYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIckCAQD5AwAh1gIBAPkDACHXAgEA-QMAIdgCAQCHBAAh2QIBAIcEACHaAgEAhwQAIdsCQADTBAAh3AJAANMEACHdAgEAhwQAId4CAQCHBAAhAgAAAAcAIBcAAG8AIAIAAAAHACAXAABvACADAAAACQAgHgAAaAAgHwAAbQAgAQAAAAkAIAEAAAAHACAKBwAArQUAICQAAK8FACAlAACuBQAg2AIAAOsEACDZAgAA6wQAINoCAADrBAAg2wIAAOsEACDcAgAA6wQAIN0CAADrBAAg3gIAAOsEACAQigIAANYDADCLAgAAdgAQjAIAANYDADCmAgEAkgMAIa4CQACVAwAhrwJAAJUDACHJAgEAkgMAIdYCAQCSAwAh1wIBAJIDACHYAgEAtQMAIdkCAQC1AwAh2gIBALUDACHbAkAApwMAIdwCQACnAwAh3QIBALUDACHeAgEAtQMAIQMAAAAHACABAAB1ADAjAAB2ACADAAAABwAgAQAACAAwAgAACQAgCYoCAADVAwAwiwIAAHwAEIwCAADVAwAwpgIBAAAAAa4CQACiAwAhrwJAAKIDACHGAkAAogMAIdQCAQCfAwAh1QIBAJ8DACEBAAAAeQAgAQAAAHkAIAmKAgAA1QMAMIsCAAB8ABCMAgAA1QMAMKYCAQCfAwAhrgJAAKIDACGvAkAAogMAIcYCQACiAwAh1AIBAJ8DACHVAgEAnwMAIQADAAAAfAAgAQAAfQAwAgAAeQAgAwAAAHwAIAEAAH0AMAIAAHkAIAMAAAB8ACABAAB9ADACAAB5ACAGpgIBAAAAAa4CQAAAAAGvAkAAAAABxgJAAAAAAdQCAQAAAAHVAgEAAAABARcAAIEBACAGpgIBAAAAAa4CQAAAAAGvAkAAAAABxgJAAAAAAdQCAQAAAAHVAgEAAAABARcAAIMBADABFwAAgwEAMAamAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHGAkAA-wMAIdQCAQD5AwAh1QIBAPkDACECAAAAeQAgFwAAhgEAIAamAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHGAkAA-wMAIdQCAQD5AwAh1QIBAPkDACECAAAAfAAgFwAAiAEAIAIAAAB8ACAXAACIAQAgAwAAAHkAIB4AAIEBACAfAACGAQAgAQAAAHkAIAEAAAB8ACADBwAAqgUAICQAAKwFACAlAACrBQAgCYoCAADUAwAwiwIAAI8BABCMAgAA1AMAMKYCAQCSAwAhrgJAAJUDACGvAkAAlQMAIcYCQACVAwAh1AIBAJIDACHVAgEAkgMAIQMAAAB8ACABAACOAQAwIwAAjwEAIAMAAAB8ACABAAB9ADACAAB5ACABAAAAEwAgAQAAABMAIAMAAAARACABAAASADACAAATACADAAAAEQAgAQAAEgAwAgAAEwAgAwAAABEAIAEAABIAMAIAABMAIA8IAACpBQAgCQAA5gQAIAsAAOcEACAMAADoBAAgpgIBAAAAAa4CQAAAAAGvAkAAAAABzAIBAAAAAc0CAQAAAAHOAgEAAAABzwIBAAAAAdACAQAAAAHRAgEAAAAB0gIBAAAAAdMCAQAAAAEBFwAAlwEAIAumAgEAAAABrgJAAAAAAa8CQAAAAAHMAgEAAAABzQIBAAAAAc4CAQAAAAHPAgEAAAAB0AIBAAAAAdECAQAAAAHSAgEAAAAB0wIBAAAAAQEXAACZAQAwARcAAJkBADABAAAADwAgDwgAAKgFACAJAACJBAAgCwAAigQAIAwAAIsEACCmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHMAgEA-QMAIc0CAQCHBAAhzgIBAIcEACHPAgEAhwQAIdACAQCHBAAh0QIBAPkDACHSAgEA-QMAIdMCAQCHBAAhAgAAABMAIBcAAJ0BACALpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhzAIBAPkDACHNAgEAhwQAIc4CAQCHBAAhzwIBAIcEACHQAgEAhwQAIdECAQD5AwAh0gIBAPkDACHTAgEAhwQAIQIAAAARACAXAACfAQAgAgAAABEAIBcAAJ8BACABAAAADwAgAwAAABMAIB4AAJcBACAfAACdAQAgAQAAABMAIAEAAAARACAIBwAApQUAICQAAKcFACAlAACmBQAgzQIAAOsEACDOAgAA6wQAIM8CAADrBAAg0AIAAOsEACDTAgAA6wQAIA6KAgAA0wMAMIsCAACnAQAQjAIAANMDADCmAgEApQMAIa4CQACVAwAhrwJAAJUDACHMAgEAkgMAIc0CAQC1AwAhzgIBALUDACHPAgEAtQMAIdACAQC1AwAh0QIBAJIDACHSAgEAkgMAIdMCAQC1AwAhAwAAABEAIAEAAKYBADAjAACnAQAgAwAAABEAIAEAABIAMAIAABMAIAEAAAANACABAAAADQAgAwAAAAsAIAEAAAwAMAIAAA0AIAMAAAALACABAAAMADACAAANACADAAAACwAgAQAADAAwAgAADQAgBgMAAOQEACAKAACkBQAgrgJAAAAAAcACAQAAAAHJAgEAAAABywIAAADLAgIBFwAArwEAIASuAkAAAAABwAIBAAAAAckCAQAAAAHLAgAAAMsCAgEXAACxAQAwARcAALEBADAGAwAA4gQAIAoAAKMFACCuAkAA-wMAIcACAQD5AwAhyQIBAPkDACHLAgAA4ATLAiICAAAADQAgFwAAtAEAIASuAkAA-wMAIcACAQD5AwAhyQIBAPkDACHLAgAA4ATLAiICAAAACwAgFwAAtgEAIAIAAAALACAXAAC2AQAgAwAAAA0AIB4AAK8BACAfAAC0AQAgAQAAAA0AIAEAAAALACADBwAAoAUAICQAAKIFACAlAAChBQAgB4oCAADPAwAwiwIAAL0BABCMAgAAzwMAMK4CQACVAwAhwAIBAKUDACHJAgEAkgMAIcsCAADQA8sCIgMAAAALACABAAC8AQAwIwAAvQEAIAMAAAALACABAAAMADACAAANACABAAAAGQAgAQAAABkAIAMAAAAXACABAAAYADACAAAZACADAAAAFwAgAQAAGAAwAgAAGQAgAwAAABcAIAEAABgAMAIAABkAIAoKAACfBQAgpgIBAAAAAacCAQAAAAGuAkAAAAABrwJAAAAAAcACAQAAAAHFAgEAAAABxgJAAAAAAccCQAAAAAHIAkAAAAABARcAAMUBACAJpgIBAAAAAacCAQAAAAGuAkAAAAABrwJAAAAAAcACAQAAAAHFAgEAAAABxgJAAAAAAccCQAAAAAHIAkAAAAABARcAAMcBADABFwAAxwEAMAoKAACeBQAgpgIBAPkDACGnAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHAAgEA-QMAIcUCAQD5AwAhxgJAAPsDACHHAkAA0wQAIcgCQADTBAAhAgAAABkAIBcAAMoBACAJpgIBAPkDACGnAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHAAgEA-QMAIcUCAQD5AwAhxgJAAPsDACHHAkAA0wQAIcgCQADTBAAhAgAAABcAIBcAAMwBACACAAAAFwAgFwAAzAEAIAMAAAAZACAeAADFAQAgHwAAygEAIAEAAAAZACABAAAAFwAgBQcAAJsFACAkAACdBQAgJQAAnAUAIMcCAADrBAAgyAIAAOsEACAMigIAAM4DADCLAgAA0wEAEIwCAADOAwAwpgIBAKUDACGnAgEAkgMAIa4CQACVAwAhrwJAAJUDACHAAgEApQMAIcUCAQCSAwAhxgJAAJUDACHHAkAApwMAIcgCQACnAwAhAwAAABcAIAEAANIBADAjAADTAQAgAwAAABcAIAEAABgAMAIAABkAIAoMAADNAwAgigIAAMsDADCLAgAA2QEAEIwCAADLAwAwjgIBAAAAAaYCAQAAAAGuAkAAogMAIa8CQACiAwAhvwIgAMwDACHEAgEAAAABAQAAANYBACABAAAA1gEAIAoMAADNAwAgigIAAMsDADCLAgAA2QEAEIwCAADLAwAwjgIBAJ8DACGmAgEArwMAIa4CQACiAwAhrwJAAKIDACG_AiAAzAMAIcQCAQCfAwAhAQwAAJoFACADAAAA2QEAIAEAANoBADACAADWAQAgAwAAANkBACABAADaAQAwAgAA1gEAIAMAAADZAQAgAQAA2gEAMAIAANYBACAHDAAAmQUAII4CAQAAAAGmAgEAAAABrgJAAAAAAa8CQAAAAAG_AiAAAAABxAIBAAAAAQEXAADeAQAgBo4CAQAAAAGmAgEAAAABrgJAAAAAAa8CQAAAAAG_AiAAAAABxAIBAAAAAQEXAADgAQAwARcAAOABADAHDAAAjwUAII4CAQD5AwAhpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhvwIgALQEACHEAgEA-QMAIQIAAADWAQAgFwAA4wEAIAaOAgEA-QMAIaYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIb8CIAC0BAAhxAIBAPkDACECAAAA2QEAIBcAAOUBACACAAAA2QEAIBcAAOUBACADAAAA1gEAIB4AAN4BACAfAADjAQAgAQAAANYBACABAAAA2QEAIAMHAACMBQAgJAAAjgUAICUAAI0FACAJigIAAMoDADCLAgAA7AEAEIwCAADKAwAwjgIBAJIDACGmAgEApQMAIa4CQACVAwAhrwJAAJUDACG_AiAAwAMAIcQCAQCSAwAhAwAAANkBACABAADrAQAwIwAA7AEAIAMAAADZAQAgAQAA2gEAMAIAANYBACABAAAAHQAgAQAAAB0AIAMAAAAbACABAAAcADACAAAdACADAAAAGwAgAQAAHAAwAgAAHQAgAwAAABsAIAEAABwAMAIAAB0AIA0KAACLBQAgDQAAxQQAIA8AAMYEACAQAADHBAAgEQAAyAQAII4CAQAAAAGmAgEAAAABrgJAAAAAAa8CQAAAAAHAAgEAAAABwQIBAAAAAcICAgAAAAHDAhAAAAABARcAAPQBACAIjgIBAAAAAaYCAQAAAAGuAkAAAAABrwJAAAAAAcACAQAAAAHBAgEAAAABwgICAAAAAcMCEAAAAAEBFwAA9gEAMAEXAAD2AQAwDQoAAIoFACANAACYBAAgDwAAmQQAIBAAAJoEACARAACbBAAgjgIBAPkDACGmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHAAgEA-QMAIcECAQD5AwAhwgICAJYEACHDAhAA-gMAIQIAAAAdACAXAAD5AQAgCI4CAQD5AwAhpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhwAIBAPkDACHBAgEA-QMAIcICAgCWBAAhwwIQAPoDACECAAAAGwAgFwAA-wEAIAIAAAAbACAXAAD7AQAgAwAAAB0AIB4AAPQBACAfAAD5AQAgAQAAAB0AIAEAAAAbACAFBwAAhQUAICQAAIgFACAlAACHBQAgpgEAAIYFACCnAQAAiQUAIAuKAgAAyQMAMIsCAACCAgAQjAIAAMkDADCOAgEAkgMAIaYCAQClAwAhrgJAAJUDACGvAkAAlQMAIcACAQClAwAhwQIBAKUDACHCAgIApgMAIcMCEACTAwAhAwAAABsAIAEAAIECADAjAACCAgAgAwAAABsAIAEAABwAMAIAAB0AIAEAAAAjACABAAAAIwAgAwAAACEAIAEAACIAMAIAACMAIAMAAAAhACABAAAiADACAAAjACADAAAAIQAgAQAAIgAwAgAAIwAgBw4AAIQFACCmAgEAAAABrgJAAAAAAbECAQAAAAGzAgEAAAABtAIBAAAAAb4CAAAAvgICARcAAIoCACAGpgIBAAAAAa4CQAAAAAGxAgEAAAABswIBAAAAAbQCAQAAAAG-AgAAAL4CAgEXAACMAgAwARcAAIwCADAHDgAAgwUAIKYCAQD5AwAhrgJAAPsDACGxAgEA-QMAIbMCAQD5AwAhtAIBAPkDACG-AgAAwQS-AiICAAAAIwAgFwAAjwIAIAamAgEA-QMAIa4CQAD7AwAhsQIBAPkDACGzAgEA-QMAIbQCAQD5AwAhvgIAAMEEvgIiAgAAACEAIBcAAJECACACAAAAIQAgFwAAkQIAIAMAAAAjACAeAACKAgAgHwAAjwIAIAEAAAAjACABAAAAIQAgAwcAAIAFACAkAACCBQAgJQAAgQUAIAmKAgAAxQMAMIsCAACYAgAQjAIAAMUDADCmAgEApQMAIa4CQACVAwAhsQIBAKUDACGzAgEAkgMAIbQCAQCSAwAhvgIAAMYDvgIiAwAAACEAIAEAAJcCADAjAACYAgAgAwAAACEAIAEAACIAMAIAACMAIAEAAAAnACABAAAAJwAgAwAAACUAIAEAACYAMAIAACcAIAMAAAAlACABAAAmADACAAAnACADAAAAJQAgAQAAJgAwAgAAJwAgCg4AAP8EACCPAhAAAAABpgIBAAAAAa4CQAAAAAGvAkAAAAABsQIBAAAAAbMCAQAAAAG0AgEAAAABvgIAAAC-AgO_AiAAAAABARcAAKACACAJjwIQAAAAAaYCAQAAAAGuAkAAAAABrwJAAAAAAbECAQAAAAGzAgEAAAABtAIBAAAAAb4CAAAAvgIDvwIgAAAAAQEXAACiAgAwARcAAKICADAKDgAA_gQAII8CEAD6AwAhpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhsQIBAPkDACGzAgEAhwQAIbQCAQCHBAAhvgIAALMEvgIjvwIgALQEACECAAAAJwAgFwAApQIAIAmPAhAA-gMAIaYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIbECAQD5AwAhswIBAIcEACG0AgEAhwQAIb4CAACzBL4CI78CIAC0BAAhAgAAACUAIBcAAKcCACACAAAAJQAgFwAApwIAIAMAAAAnACAeAACgAgAgHwAApQIAIAEAAAAnACABAAAAJQAgCAcAAPkEACAkAAD8BAAgJQAA-wQAIKYBAAD6BAAgpwEAAP0EACCzAgAA6wQAILQCAADrBAAgvgIAAOsEACAMigIAAL4DADCLAgAArgIAEIwCAAC-AwAwjwIQAJMDACGmAgEApQMAIa4CQACVAwAhrwJAAJUDACGxAgEApQMAIbMCAQC1AwAhtAIBALUDACG-AgAAvwO-AiO_AiAAwAMAIQMAAAAlACABAACtAgAwIwAArgIAIAMAAAAlACABAAAmADACAAAnACABAAAAKwAgAQAAACsAIAMAAAApACABAAAqADACAAArACADAAAAKQAgAQAAKgAwAgAAKwAgAwAAACkAIAEAACoAMAIAACsAIA0OAAD4BAAgpgIBAAAAAa4CQAAAAAGvAkAAAAABsAIBAAAAAbECAQAAAAGyAkAAAAABswIBAAAAAbQCAQAAAAG4AgEAAAABuQIBAAAAAboCAQAAAAG8AgAAALYCAgEXAAC2AgAgDKYCAQAAAAGuAkAAAAABrwJAAAAAAbACAQAAAAGxAgEAAAABsgJAAAAAAbMCAQAAAAG0AgEAAAABuAIBAAAAAbkCAQAAAAG6AgEAAAABvAIAAAC2AgIBFwAAuAIAMAEXAAC4AgAwDQ4AAPcEACCmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACGwAgEA-QMAIbECAQD5AwAhsgJAAPsDACGzAgEA-QMAIbQCAQD5AwAhuAIBAPkDACG5AgEA-QMAIboCAQCHBAAhvAIAAKYEtgIiAgAAACsAIBcAALsCACAMpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhsAIBAPkDACGxAgEA-QMAIbICQAD7AwAhswIBAPkDACG0AgEA-QMAIbgCAQD5AwAhuQIBAPkDACG6AgEAhwQAIbwCAACmBLYCIgIAAAApACAXAAC9AgAgAgAAACkAIBcAAL0CACADAAAAKwAgHgAAtgIAIB8AALsCACABAAAAKwAgAQAAACkAIAQHAAD0BAAgJAAA9gQAICUAAPUEACC6AgAA6wQAIA-KAgAAvQMAMIsCAADEAgAQjAIAAL0DADCmAgEApQMAIa4CQACVAwAhrwJAAJUDACGwAgEAkgMAIbECAQClAwAhsgJAAJUDACGzAgEAkgMAIbQCAQCSAwAhuAIBAJIDACG5AgEAkgMAIboCAQC1AwAhvAIAALQDtgIiAwAAACkAIAEAAMMCADAjAADEAgAgAwAAACkAIAEAACoAMAIAACsAIA-KAgAAugMAMIsCAADKAgAQjAIAALoDADCmAgEAAAABsAIBAJ8DACGxAgEArwMAIbICQACiAwAhswIBAJ8DACG0AgEAnwMAIbYCAAC7A7YCIrcCAAC7A7YCIrgCAQCfAwAhuQIBAJ8DACG6AgEAvAMAIbsCQACiAwAhAQAAAMcCACABAAAAxwIAIA-KAgAAugMAMIsCAADKAgAQjAIAALoDADCmAgEArwMAIbACAQCfAwAhsQIBAK8DACGyAkAAogMAIbMCAQCfAwAhtAIBAJ8DACG2AgAAuwO2AiK3AgAAuwO2AiK4AgEAnwMAIbkCAQCfAwAhugIBALwDACG7AkAAogMAIQG6AgAA6wQAIAMAAADKAgAgAQAAywIAMAIAAMcCACADAAAAygIAIAEAAMsCADACAADHAgAgAwAAAMoCACABAADLAgAwAgAAxwIAIAymAgEAAAABsAIBAAAAAbECAQAAAAGyAkAAAAABswIBAAAAAbQCAQAAAAG2AgAAALYCArcCAAAAtgICuAIBAAAAAbkCAQAAAAG6AgEAAAABuwJAAAAAAQEXAADPAgAgDKYCAQAAAAGwAgEAAAABsQIBAAAAAbICQAAAAAGzAgEAAAABtAIBAAAAAbYCAAAAtgICtwIAAAC2AgK4AgEAAAABuQIBAAAAAboCAQAAAAG7AkAAAAABARcAANECADABFwAA0QIAMAymAgEA-QMAIbACAQD5AwAhsQIBAPkDACGyAkAA-wMAIbMCAQD5AwAhtAIBAPkDACG2AgAApgS2AiK3AgAApgS2AiK4AgEA-QMAIbkCAQD5AwAhugIBAIcEACG7AkAA-wMAIQIAAADHAgAgFwAA1AIAIAymAgEA-QMAIbACAQD5AwAhsQIBAPkDACGyAkAA-wMAIbMCAQD5AwAhtAIBAPkDACG2AgAApgS2AiK3AgAApgS2AiK4AgEA-QMAIbkCAQD5AwAhugIBAIcEACG7AkAA-wMAIQIAAADKAgAgFwAA1gIAIAIAAADKAgAgFwAA1gIAIAMAAADHAgAgHgAAzwIAIB8AANQCACABAAAAxwIAIAEAAADKAgAgBAcAAPEEACAkAADzBAAgJQAA8gQAILoCAADrBAAgD4oCAACzAwAwiwIAAN0CABCMAgAAswMAMKYCAQClAwAhsAIBAJIDACGxAgEApQMAIbICQACVAwAhswIBAJIDACG0AgEAkgMAIbYCAAC0A7YCIrcCAAC0A7YCIrgCAQCSAwAhuQIBAJIDACG6AgEAtQMAIbsCQACVAwAhAwAAAMoCACABAADcAgAwIwAA3QIAIAMAAADKAgAgAQAAywIAMAIAAMcCACANigIAAK4DADCLAgAA4wIAEIwCAACuAwAwpgIBAAAAAacCAQCfAwAhqAIBAJ8DACGpAkAAogMAIaoCAgCwAwAhqwJAAKIDACGsAgIAsAMAIa0CQACxAwAhrgJAAKIDACGvAkAAogMAIQEAAADgAgAgAQAAAOACACANigIAAK4DADCLAgAA4wIAEIwCAACuAwAwpgIBAK8DACGnAgEAnwMAIagCAQCfAwAhqQJAAKIDACGqAgIAsAMAIasCQACiAwAhrAICALADACGtAkAAsQMAIa4CQACiAwAhrwJAAKIDACEBrQIAAOsEACADAAAA4wIAIAEAAOQCADACAADgAgAgAwAAAOMCACABAADkAgAwAgAA4AIAIAMAAADjAgAgAQAA5AIAMAIAAOACACAKpgIBAAAAAacCAQAAAAGoAgEAAAABqQJAAAAAAaoCAgAAAAGrAkAAAAABrAICAAAAAa0CQAAAAAGuAkAAAAABrwJAAAAAAQEXAADoAgAgCqYCAQAAAAGnAgEAAAABqAIBAAAAAakCQAAAAAGqAgIAAAABqwJAAAAAAawCAgAAAAGtAkAAAAABrgJAAAAAAa8CQAAAAAEBFwAA6gIAMAEXAADqAgAwCqYCAQD5AwAhpwIBAPkDACGoAgEA-QMAIakCQAD7AwAhqgICAJYEACGrAkAA-wMAIawCAgCWBAAhrQJAANMEACGuAkAA-wMAIa8CQAD7AwAhAgAAAOACACAXAADtAgAgCqYCAQD5AwAhpwIBAPkDACGoAgEA-QMAIakCQAD7AwAhqgICAJYEACGrAkAA-wMAIawCAgCWBAAhrQJAANMEACGuAkAA-wMAIa8CQAD7AwAhAgAAAOMCACAXAADvAgAgAgAAAOMCACAXAADvAgAgAwAAAOACACAeAADoAgAgHwAA7QIAIAEAAADgAgAgAQAAAOMCACAGBwAA7AQAICQAAO8EACAlAADuBAAgpgEAAO0EACCnAQAA8AQAIK0CAADrBAAgDYoCAACkAwAwiwIAAPYCABCMAgAApAMAMKYCAQClAwAhpwIBAJIDACGoAgEAkgMAIakCQACVAwAhqgICAKYDACGrAkAAlQMAIawCAgCmAwAhrQJAAKcDACGuAkAAlQMAIa8CQACVAwAhAwAAAOMCACABAAD1AgAwIwAA9gIAIAMAAADjAgAgAQAA5AIAMAIAAOACACAJBgAAowMAIIoCAACeAwAwiwIAAA8AEIwCAACeAwAwjQIBAAAAAY4CAQCfAwAhjwIQAKADACGQAgAAoQMAIJECQACiAwAhAQAAAPkCACABAAAA-QIAIAEGAADqBAAgAwAAAA8AIAEAAPwCADACAAD5AgAgAwAAAA8AIAEAAPwCADACAAD5AgAgAwAAAA8AIAEAAPwCADACAAD5AgAgBgYAAOkEACCNAgEAAAABjgIBAAAAAY8CEAAAAAGQAoAAAAABkQJAAAAAAQEXAACAAwAgBY0CAQAAAAGOAgEAAAABjwIQAAAAAZACgAAAAAGRAkAAAAABARcAAIIDADABFwAAggMAMAYGAAD8AwAgjQIBAPkDACGOAgEA-QMAIY8CEAD6AwAhkAKAAAAAAZECQAD7AwAhAgAAAPkCACAXAACFAwAgBY0CAQD5AwAhjgIBAPkDACGPAhAA-gMAIZACgAAAAAGRAkAA-wMAIQIAAAAPACAXAACHAwAgAgAAAA8AIBcAAIcDACADAAAA-QIAIB4AAIADACAfAACFAwAgAQAAAPkCACABAAAADwAgBQcAAPQDACAkAAD3AwAgJQAA9gMAIKYBAAD1AwAgpwEAAPgDACAIigIAAJEDADCLAgAAjgMAEIwCAACRAwAwjQIBAJIDACGOAgEAkgMAIY8CEACTAwAhkAIAAJQDACCRAkAAlQMAIQMAAAAPACABAACNAwAwIwAAjgMAIAMAAAAPACABAAD8AgAwAgAA-QIAIAiKAgAAkQMAMIsCAACOAwAQjAIAAJEDADCNAgEAkgMAIY4CAQCSAwAhjwIQAJMDACGQAgAAlAMAIJECQACVAwAhDgcAAJcDACAkAACdAwAgJQAAnQMAIJICAQAAAAGTAgEAAAAElAIBAAAABJUCAQAAAAGWAgEAAAABlwIBAAAAAZgCAQAAAAGZAgEAnAMAIaACAQAAAAGhAgEAAAABogIBAAAAAQ0HAACXAwAgJAAAmwMAICUAAJsDACCmAQAAmwMAIKcBAACbAwAgkgIQAAAAAZMCEAAAAASUAhAAAAAElQIQAAAAAZYCEAAAAAGXAhAAAAABmAIQAAAAAZkCEACaAwAhDwcAAJcDACAkAACZAwAgJQAAmQMAIJICgAAAAAGVAoAAAAABlgKAAAAAAZcCgAAAAAGYAoAAAAABmQKAAAAAAZoCAQAAAAGbAgEAAAABnAIBAAAAAZ0CgAAAAAGeAoAAAAABnwKAAAAAAQsHAACXAwAgJAAAmAMAICUAAJgDACCSAkAAAAABkwJAAAAABJQCQAAAAASVAkAAAAABlgJAAAAAAZcCQAAAAAGYAkAAAAABmQJAAJYDACELBwAAlwMAICQAAJgDACAlAACYAwAgkgJAAAAAAZMCQAAAAASUAkAAAAAElQJAAAAAAZYCQAAAAAGXAkAAAAABmAJAAAAAAZkCQACWAwAhCJICAgAAAAGTAgIAAAAElAICAAAABJUCAgAAAAGWAgIAAAABlwICAAAAAZgCAgAAAAGZAgIAlwMAIQiSAkAAAAABkwJAAAAABJQCQAAAAASVAkAAAAABlgJAAAAAAZcCQAAAAAGYAkAAAAABmQJAAJgDACEMkgKAAAAAAZUCgAAAAAGWAoAAAAABlwKAAAAAAZgCgAAAAAGZAoAAAAABmgIBAAAAAZsCAQAAAAGcAgEAAAABnQKAAAAAAZ4CgAAAAAGfAoAAAAABDQcAAJcDACAkAACbAwAgJQAAmwMAIKYBAACbAwAgpwEAAJsDACCSAhAAAAABkwIQAAAABJQCEAAAAASVAhAAAAABlgIQAAAAAZcCEAAAAAGYAhAAAAABmQIQAJoDACEIkgIQAAAAAZMCEAAAAASUAhAAAAAElQIQAAAAAZYCEAAAAAGXAhAAAAABmAIQAAAAAZkCEACbAwAhDgcAAJcDACAkAACdAwAgJQAAnQMAIJICAQAAAAGTAgEAAAAElAIBAAAABJUCAQAAAAGWAgEAAAABlwIBAAAAAZgCAQAAAAGZAgEAnAMAIaACAQAAAAGhAgEAAAABogIBAAAAAQuSAgEAAAABkwIBAAAABJQCAQAAAASVAgEAAAABlgIBAAAAAZcCAQAAAAGYAgEAAAABmQIBAJ0DACGgAgEAAAABoQIBAAAAAaICAQAAAAEJBgAAowMAIIoCAACeAwAwiwIAAA8AEIwCAACeAwAwjQIBAJ8DACGOAgEAnwMAIY8CEACgAwAhkAIAAKEDACCRAkAAogMAIQuSAgEAAAABkwIBAAAABJQCAQAAAASVAgEAAAABlgIBAAAAAZcCAQAAAAGYAgEAAAABmQIBAJ0DACGgAgEAAAABoQIBAAAAAaICAQAAAAEIkgIQAAAAAZMCEAAAAASUAhAAAAAElQIQAAAAAZYCEAAAAAGXAhAAAAABmAIQAAAAAZkCEACbAwAhDJICgAAAAAGVAoAAAAABlgKAAAAAAZcCgAAAAAGYAoAAAAABmQKAAAAAAZoCAQAAAAGbAgEAAAABnAIBAAAAAZ0CgAAAAAGeAoAAAAABnwKAAAAAAQiSAkAAAAABkwJAAAAABJQCQAAAAASVAkAAAAABlgJAAAAAAZcCQAAAAAGYAkAAAAABmQJAAJgDACEDowIAABEAIKQCAAARACClAgAAEQAgDYoCAACkAwAwiwIAAPYCABCMAgAApAMAMKYCAQClAwAhpwIBAJIDACGoAgEAkgMAIakCQACVAwAhqgICAKYDACGrAkAAlQMAIawCAgCmAwAhrQJAAKcDACGuAkAAlQMAIa8CQACVAwAhCwcAAJcDACAkAACdAwAgJQAAnQMAIJICAQAAAAGTAgEAAAAElAIBAAAABJUCAQAAAAGWAgEAAAABlwIBAAAAAZgCAQAAAAGZAgEArQMAIQ0HAACXAwAgJAAAlwMAICUAAJcDACCmAQAArAMAIKcBAACXAwAgkgICAAAAAZMCAgAAAASUAgIAAAAElQICAAAAAZYCAgAAAAGXAgIAAAABmAICAAAAAZkCAgCrAwAhCwcAAKkDACAkAACqAwAgJQAAqgMAIJICQAAAAAGTAkAAAAAFlAJAAAAABZUCQAAAAAGWAkAAAAABlwJAAAAAAZgCQAAAAAGZAkAAqAMAIQsHAACpAwAgJAAAqgMAICUAAKoDACCSAkAAAAABkwJAAAAABZQCQAAAAAWVAkAAAAABlgJAAAAAAZcCQAAAAAGYAkAAAAABmQJAAKgDACEIkgICAAAAAZMCAgAAAAWUAgIAAAAFlQICAAAAAZYCAgAAAAGXAgIAAAABmAICAAAAAZkCAgCpAwAhCJICQAAAAAGTAkAAAAAFlAJAAAAABZUCQAAAAAGWAkAAAAABlwJAAAAAAZgCQAAAAAGZAkAAqgMAIQ0HAACXAwAgJAAAlwMAICUAAJcDACCmAQAArAMAIKcBAACXAwAgkgICAAAAAZMCAgAAAASUAgIAAAAElQICAAAAAZYCAgAAAAGXAgIAAAABmAICAAAAAZkCAgCrAwAhCJICCAAAAAGTAggAAAAElAIIAAAABJUCCAAAAAGWAggAAAABlwIIAAAAAZgCCAAAAAGZAggArAMAIQsHAACXAwAgJAAAnQMAICUAAJ0DACCSAgEAAAABkwIBAAAABJQCAQAAAASVAgEAAAABlgIBAAAAAZcCAQAAAAGYAgEAAAABmQIBAK0DACENigIAAK4DADCLAgAA4wIAEIwCAACuAwAwpgIBAK8DACGnAgEAnwMAIagCAQCfAwAhqQJAAKIDACGqAgIAsAMAIasCQACiAwAhrAICALADACGtAkAAsQMAIa4CQACiAwAhrwJAAKIDACEIkgIBAAAAAZMCAQAAAASUAgEAAAAElQIBAAAAAZYCAQAAAAGXAgEAAAABmAIBAAAAAZkCAQCyAwAhCJICAgAAAAGTAgIAAAAElAICAAAABJUCAgAAAAGWAgIAAAABlwICAAAAAZgCAgAAAAGZAgIAlwMAIQiSAkAAAAABkwJAAAAABZQCQAAAAAWVAkAAAAABlgJAAAAAAZcCQAAAAAGYAkAAAAABmQJAAKoDACEIkgIBAAAAAZMCAQAAAASUAgEAAAAElQIBAAAAAZYCAQAAAAGXAgEAAAABmAIBAAAAAZkCAQCyAwAhD4oCAACzAwAwiwIAAN0CABCMAgAAswMAMKYCAQClAwAhsAIBAJIDACGxAgEApQMAIbICQACVAwAhswIBAJIDACG0AgEAkgMAIbYCAAC0A7YCIrcCAAC0A7YCIrgCAQCSAwAhuQIBAJIDACG6AgEAtQMAIbsCQACVAwAhBwcAAJcDACAkAAC5AwAgJQAAuQMAIJICAAAAtgICkwIAAAC2AgiUAgAAALYCCJkCAAC4A7YCIg4HAACpAwAgJAAAtwMAICUAALcDACCSAgEAAAABkwIBAAAABZQCAQAAAAWVAgEAAAABlgIBAAAAAZcCAQAAAAGYAgEAAAABmQIBALYDACGgAgEAAAABoQIBAAAAAaICAQAAAAEOBwAAqQMAICQAALcDACAlAAC3AwAgkgIBAAAAAZMCAQAAAAWUAgEAAAAFlQIBAAAAAZYCAQAAAAGXAgEAAAABmAIBAAAAAZkCAQC2AwAhoAIBAAAAAaECAQAAAAGiAgEAAAABC5ICAQAAAAGTAgEAAAAFlAIBAAAABZUCAQAAAAGWAgEAAAABlwIBAAAAAZgCAQAAAAGZAgEAtwMAIaACAQAAAAGhAgEAAAABogIBAAAAAQcHAACXAwAgJAAAuQMAICUAALkDACCSAgAAALYCApMCAAAAtgIIlAIAAAC2AgiZAgAAuAO2AiIEkgIAAAC2AgKTAgAAALYCCJQCAAAAtgIImQIAALkDtgIiD4oCAAC6AwAwiwIAAMoCABCMAgAAugMAMKYCAQCvAwAhsAIBAJ8DACGxAgEArwMAIbICQACiAwAhswIBAJ8DACG0AgEAnwMAIbYCAAC7A7YCIrcCAAC7A7YCIrgCAQCfAwAhuQIBAJ8DACG6AgEAvAMAIbsCQACiAwAhBJICAAAAtgICkwIAAAC2AgiUAgAAALYCCJkCAAC5A7YCIguSAgEAAAABkwIBAAAABZQCAQAAAAWVAgEAAAABlgIBAAAAAZcCAQAAAAGYAgEAAAABmQIBALcDACGgAgEAAAABoQIBAAAAAaICAQAAAAEPigIAAL0DADCLAgAAxAIAEIwCAAC9AwAwpgIBAKUDACGuAkAAlQMAIa8CQACVAwAhsAIBAJIDACGxAgEApQMAIbICQACVAwAhswIBAJIDACG0AgEAkgMAIbgCAQCSAwAhuQIBAJIDACG6AgEAtQMAIbwCAAC0A7YCIgyKAgAAvgMAMIsCAACuAgAQjAIAAL4DADCPAhAAkwMAIaYCAQClAwAhrgJAAJUDACGvAkAAlQMAIbECAQClAwAhswIBALUDACG0AgEAtQMAIb4CAAC_A74CI78CIADAAwAhBwcAAKkDACAkAADEAwAgJQAAxAMAIJICAAAAvgIDkwIAAAC-AgmUAgAAAL4CCZkCAADDA74CIwUHAACXAwAgJAAAwgMAICUAAMIDACCSAiAAAAABmQIgAMEDACEFBwAAlwMAICQAAMIDACAlAADCAwAgkgIgAAAAAZkCIADBAwAhApICIAAAAAGZAiAAwgMAIQcHAACpAwAgJAAAxAMAICUAAMQDACCSAgAAAL4CA5MCAAAAvgIJlAIAAAC-AgmZAgAAwwO-AiMEkgIAAAC-AgOTAgAAAL4CCZQCAAAAvgIJmQIAAMQDvgIjCYoCAADFAwAwiwIAAJgCABCMAgAAxQMAMKYCAQClAwAhrgJAAJUDACGxAgEApQMAIbMCAQCSAwAhtAIBAJIDACG-AgAAxgO-AiIHBwAAlwMAICQAAMgDACAlAADIAwAgkgIAAAC-AgKTAgAAAL4CCJQCAAAAvgIImQIAAMcDvgIiBwcAAJcDACAkAADIAwAgJQAAyAMAIJICAAAAvgICkwIAAAC-AgiUAgAAAL4CCJkCAADHA74CIgSSAgAAAL4CApMCAAAAvgIIlAIAAAC-AgiZAgAAyAO-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_QMAMB8AAIIEADDpAgAA_gMAMOoCAAD_AwAw6wIAAIAEACDsAgAAgQQAMO0CAACBBAAw7gIAAIEEADDvAgAAgQQAMPACAACDBAAw8QIAAIQEADANCQAA5gQAIAsAAOcEACAMAADoBAAgpgIBAAAAAa4CQAAAAAGvAkAAAAABzAIBAAAAAc0CAQAAAAHOAgEAAAABzwIBAAAAAdACAQAAAAHRAgEAAAAB0gIBAAAAAQIAAAATACAeAADlBAAgAwAAABMAIB4AAOUEACAfAACIBAAgARcAAK4GADASCAAA7AMAIAkAANwDACALAADtAwAgDAAAzQMAIIoCAADrAwAwiwIAABEAEIwCAADrAwAwpgIBAAAAAa4CQACiAwAhrwJAAKIDACHMAgEAnwMAIc0CAQC8AwAhzgIBALwDACHPAgEAvAMAIdACAQC8AwAh0QIBAAAAAdICAQCfAwAh0wIBALwDACECAAAAEwAgFwAAiAQAIAIAAACFBAAgFwAAhgQAIA6KAgAAhAQAMIsCAACFBAAQjAIAAIQEADCmAgEArwMAIa4CQACiAwAhrwJAAKIDACHMAgEAnwMAIc0CAQC8AwAhzgIBALwDACHPAgEAvAMAIdACAQC8AwAh0QIBAJ8DACHSAgEAnwMAIdMCAQC8AwAhDooCAACEBAAwiwIAAIUEABCMAgAAhAQAMKYCAQCvAwAhrgJAAKIDACGvAkAAogMAIcwCAQCfAwAhzQIBALwDACHOAgEAvAMAIc8CAQC8AwAh0AIBALwDACHRAgEAnwMAIdICAQCfAwAh0wIBALwDACEKpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhzAIBAPkDACHNAgEAhwQAIc4CAQCHBAAhzwIBAIcEACHQAgEAhwQAIdECAQD5AwAh0gIBAPkDACEB7AIBAAAAAQ0JAACJBAAgCwAAigQAIAwAAIsEACCmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHMAgEA-QMAIc0CAQCHBAAhzgIBAIcEACHPAgEAhwQAIdACAQCHBAAh0QIBAPkDACHSAgEA-QMAIQseAADWBAAwHwAA2wQAMOkCAADXBAAw6gIAANgEADDrAgAA2QQAIOwCAADaBAAw7QIAANoEADDuAgAA2gQAMO8CAADaBAAw8AIAANwEADDxAgAA3QQAMAseAADJBAAwHwAAzgQAMOkCAADKBAAw6gIAAMsEADDrAgAAzAQAIOwCAADNBAAw7QIAAM0EADDuAgAAzQQAMO8CAADNBAAw8AIAAM8EADDxAgAA0AQAMAseAACMBAAwHwAAkQQAMOkCAACNBAAw6gIAAI4EADDrAgAAjwQAIOwCAACQBAAw7QIAAJAEADDuAgAAkAQAMO8CAACQBAAw8AIAAJIEADDxAgAAkwQAMAsNAADFBAAgDwAAxgQAIBAAAMcEACARAADIBAAgjgIBAAAAAaYCAQAAAAGuAkAAAAABrwJAAAAAAcECAQAAAAHCAgIAAAABwwIQAAAAAQIAAAAdACAeAADEBAAgAwAAAB0AIB4AAMQEACAfAACXBAAgARcAAK0GADAQCgAA5QMAIA0AAOYDACAPAADnAwAgEAAA6AMAIBEAAOkDACCKAgAA5AMAMIsCAAAbABCMAgAA5AMAMI4CAQCfAwAhpgIBAAAAAa4CQACiAwAhrwJAAKIDACHAAgEArwMAIcECAQCvAwAhwgICALADACHDAhAAoAMAIQIAAAAdACAXAACXBAAgAgAAAJQEACAXAACVBAAgC4oCAACTBAAwiwIAAJQEABCMAgAAkwQAMI4CAQCfAwAhpgIBAK8DACGuAkAAogMAIa8CQACiAwAhwAIBAK8DACHBAgEArwMAIcICAgCwAwAhwwIQAKADACELigIAAJMEADCLAgAAlAQAEIwCAACTBAAwjgIBAJ8DACGmAgEArwMAIa4CQACiAwAhrwJAAKIDACHAAgEArwMAIcECAQCvAwAhwgICALADACHDAhAAoAMAIQeOAgEA-QMAIaYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcECAQD5AwAhwgICAJYEACHDAhAA-gMAIQXsAgIAAAAB8gICAAAAAfMCAgAAAAH0AgIAAAAB9QICAAAAAQsNAACYBAAgDwAAmQQAIBAAAJoEACARAACbBAAgjgIBAPkDACGmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHBAgEA-QMAIcICAgCWBAAhwwIQAPoDACEFHgAApQYAIB8AAKsGACDpAgAApgYAIOoCAACqBgAg7wIAANYBACALHgAAtwQAMB8AALwEADDpAgAAuAQAMOoCAAC5BAAw6wIAALoEACDsAgAAuwQAMO0CAAC7BAAw7gIAALsEADDvAgAAuwQAMPACAAC9BAAw8QIAAL4EADALHgAAqQQAMB8AAK4EADDpAgAAqgQAMOoCAACrBAAw6wIAAKwEACDsAgAArQQAMO0CAACtBAAw7gIAAK0EADDvAgAArQQAMPACAACvBAAw8QIAALAEADALHgAAnAQAMB8AAKEEADDpAgAAnQQAMOoCAACeBAAw6wIAAJ8EACDsAgAAoAQAMO0CAACgBAAw7gIAAKAEADDvAgAAoAQAMPACAACiBAAw8QIAAKMEADALpgIBAAAAAa4CQAAAAAGvAkAAAAABsAIBAAAAAbICQAAAAAGzAgEAAAABtAIBAAAAAbgCAQAAAAG5AgEAAAABugIBAAAAAbwCAAAAtgICAgAAACsAIB4AAKgEACADAAAAKwAgHgAAqAQAIB8AAKcEACABFwAAqQYAMBEOAADfAwAgigIAAN4DADCLAgAAKQAQjAIAAN4DADCmAgEAAAABrgJAAKIDACGvAkAAogMAIbACAQAAAAGxAgEArwMAIbICQACiAwAhswIBAJ8DACG0AgEAnwMAIbgCAQCfAwAhuQIBAJ8DACG6AgEAvAMAIbwCAAC7A7YCIuUCAADdAwAgAgAAACsAIBcAAKcEACACAAAApAQAIBcAAKUEACAPigIAAKMEADCLAgAApAQAEIwCAACjBAAwpgIBAK8DACGuAkAAogMAIa8CQACiAwAhsAIBAJ8DACGxAgEArwMAIbICQACiAwAhswIBAJ8DACG0AgEAnwMAIbgCAQCfAwAhuQIBAJ8DACG6AgEAvAMAIbwCAAC7A7YCIg-KAgAAowQAMIsCAACkBAAQjAIAAKMEADCmAgEArwMAIa4CQACiAwAhrwJAAKIDACGwAgEAnwMAIbECAQCvAwAhsgJAAKIDACGzAgEAnwMAIbQCAQCfAwAhuAIBAJ8DACG5AgEAnwMAIboCAQC8AwAhvAIAALsDtgIiC6YCAQD5AwAhrgJAAPsDACGvAkAA-wMAIbACAQD5AwAhsgJAAPsDACGzAgEA-QMAIbQCAQD5AwAhuAIBAPkDACG5AgEA-QMAIboCAQCHBAAhvAIAAKYEtgIiAewCAAAAtgICC6YCAQD5AwAhrgJAAPsDACGvAkAA-wMAIbACAQD5AwAhsgJAAPsDACGzAgEA-QMAIbQCAQD5AwAhuAIBAPkDACG5AgEA-QMAIboCAQCHBAAhvAIAAKYEtgIiC6YCAQAAAAGuAkAAAAABrwJAAAAAAbACAQAAAAGyAkAAAAABswIBAAAAAbQCAQAAAAG4AgEAAAABuQIBAAAAAboCAQAAAAG8AgAAALYCAgiPAhAAAAABpgIBAAAAAa4CQAAAAAGvAkAAAAABswIBAAAAAbQCAQAAAAG-AgAAAL4CA78CIAAAAAECAAAAJwAgHgAAtgQAIAMAAAAnACAeAAC2BAAgHwAAtQQAIAEXAACoBgAwDQ4AAN8DACCKAgAA4AMAMIsCAAAlABCMAgAA4AMAMI8CEACgAwAhpgIBAAAAAa4CQACiAwAhrwJAAKIDACGxAgEArwMAIbMCAQC8AwAhtAIBALwDACG-AgAA4QO-AiO_AiAAzAMAIQIAAAAnACAXAAC1BAAgAgAAALEEACAXAACyBAAgDIoCAACwBAAwiwIAALEEABCMAgAAsAQAMI8CEACgAwAhpgIBAK8DACGuAkAAogMAIa8CQACiAwAhsQIBAK8DACGzAgEAvAMAIbQCAQC8AwAhvgIAAOEDvgIjvwIgAMwDACEMigIAALAEADCLAgAAsQQAEIwCAACwBAAwjwIQAKADACGmAgEArwMAIa4CQACiAwAhrwJAAKIDACGxAgEArwMAIbMCAQC8AwAhtAIBALwDACG-AgAA4QO-AiO_AiAAzAMAIQiPAhAA-gMAIaYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIbMCAQCHBAAhtAIBAIcEACG-AgAAswS-AiO_AiAAtAQAIQHsAgAAAL4CAwHsAiAAAAABCI8CEAD6AwAhpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhswIBAIcEACG0AgEAhwQAIb4CAACzBL4CI78CIAC0BAAhCI8CEAAAAAGmAgEAAAABrgJAAAAAAa8CQAAAAAGzAgEAAAABtAIBAAAAAb4CAAAAvgIDvwIgAAAAAQWmAgEAAAABrgJAAAAAAbMCAQAAAAG0AgEAAAABvgIAAAC-AgICAAAAIwAgHgAAwwQAIAMAAAAjACAeAADDBAAgHwAAwgQAIAEXAACnBgAwCg4AAN8DACCKAgAA4gMAMIsCAAAhABCMAgAA4gMAMKYCAQAAAAGuAkAAogMAIbECAQCvAwAhswIBAJ8DACG0AgEAnwMAIb4CAADjA74CIgIAAAAjACAXAADCBAAgAgAAAL8EACAXAADABAAgCYoCAAC-BAAwiwIAAL8EABCMAgAAvgQAMKYCAQCvAwAhrgJAAKIDACGxAgEArwMAIbMCAQCfAwAhtAIBAJ8DACG-AgAA4wO-AiIJigIAAL4EADCLAgAAvwQAEIwCAAC-BAAwpgIBAK8DACGuAkAAogMAIbECAQCvAwAhswIBAJ8DACG0AgEAnwMAIb4CAADjA74CIgWmAgEA-QMAIa4CQAD7AwAhswIBAPkDACG0AgEA-QMAIb4CAADBBL4CIgHsAgAAAL4CAgWmAgEA-QMAIa4CQAD7AwAhswIBAPkDACG0AgEA-QMAIb4CAADBBL4CIgWmAgEAAAABrgJAAAAAAbMCAQAAAAG0AgEAAAABvgIAAAC-AgILDQAAxQQAIA8AAMYEACAQAADHBAAgEQAAyAQAII4CAQAAAAGmAgEAAAABrgJAAAAAAa8CQAAAAAHBAgEAAAABwgICAAAAAcMCEAAAAAEDHgAApQYAIOkCAACmBgAg7wIAANYBACAEHgAAtwQAMOkCAAC4BAAw6wIAALoEACDvAgAAuwQAMAQeAACpBAAw6QIAAKoEADDrAgAArAQAIO8CAACtBAAwBB4AAJwEADDpAgAAnQQAMOsCAACfBAAg7wIAAKAEADAIpgIBAAAAAacCAQAAAAGuAkAAAAABrwJAAAAAAcUCAQAAAAHGAkAAAAABxwJAAAAAAcgCQAAAAAECAAAAGQAgHgAA1QQAIAMAAAAZACAeAADVBAAgHwAA1AQAIAEXAACkBgAwDQoAAOUDACCKAgAA6gMAMIsCAAAXABCMAgAA6gMAMKYCAQAAAAGnAgEAnwMAIa4CQACiAwAhrwJAAKIDACHAAgEArwMAIcUCAQAAAAHGAkAAogMAIccCQACxAwAhyAJAALEDACECAAAAGQAgFwAA1AQAIAIAAADRBAAgFwAA0gQAIAyKAgAA0AQAMIsCAADRBAAQjAIAANAEADCmAgEArwMAIacCAQCfAwAhrgJAAKIDACGvAkAAogMAIcACAQCvAwAhxQIBAJ8DACHGAkAAogMAIccCQACxAwAhyAJAALEDACEMigIAANAEADCLAgAA0QQAEIwCAADQBAAwpgIBAK8DACGnAgEAnwMAIa4CQACiAwAhrwJAAKIDACHAAgEArwMAIcUCAQCfAwAhxgJAAKIDACHHAkAAsQMAIcgCQACxAwAhCKYCAQD5AwAhpwIBAPkDACGuAkAA-wMAIa8CQAD7AwAhxQIBAPkDACHGAkAA-wMAIccCQADTBAAhyAJAANMEACEB7AJAAAAAAQimAgEA-QMAIacCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcUCAQD5AwAhxgJAAPsDACHHAkAA0wQAIcgCQADTBAAhCKYCAQAAAAGnAgEAAAABrgJAAAAAAa8CQAAAAAHFAgEAAAABxgJAAAAAAccCQAAAAAHIAkAAAAABBAMAAOQEACCuAkAAAAAByQIBAAAAAcsCAAAAywICAgAAAA0AIB4AAOMEACADAAAADQAgHgAA4wQAIB8AAOEEACABFwAAowYAMAoDAADxAwAgCgAA5QMAIIoCAADvAwAwiwIAAAsAEIwCAADvAwAwrgJAAKIDACHAAgEArwMAIckCAQCfAwAhywIAAPADywIi5gIAAO4DACACAAAADQAgFwAA4QQAIAIAAADeBAAgFwAA3wQAIAeKAgAA3QQAMIsCAADeBAAQjAIAAN0EADCuAkAAogMAIcACAQCvAwAhyQIBAJ8DACHLAgAA8APLAiIHigIAAN0EADCLAgAA3gQAEIwCAADdBAAwrgJAAKIDACHAAgEArwMAIckCAQCfAwAhywIAAPADywIiA64CQAD7AwAhyQIBAPkDACHLAgAA4ATLAiIB7AIAAADLAgIEAwAA4gQAIK4CQAD7AwAhyQIBAPkDACHLAgAA4ATLAiIFHgAAngYAIB8AAKEGACDpAgAAnwYAIOoCAACgBgAg7wIAAAEAIAQDAADkBAAgrgJAAAAAAckCAQAAAAHLAgAAAMsCAgMeAACeBgAg6QIAAJ8GACDvAgAAAQAgDQkAAOYEACALAADnBAAgDAAA6AQAIKYCAQAAAAGuAkAAAAABrwJAAAAAAcwCAQAAAAHNAgEAAAABzgIBAAAAAc8CAQAAAAHQAgEAAAAB0QIBAAAAAdICAQAAAAEEHgAA1gQAMOkCAADXBAAw6wIAANkEACDvAgAA2gQAMAQeAADJBAAw6QIAAMoEADDrAgAAzAQAIO8CAADNBAAwBB4AAIwEADDpAgAAjQQAMOsCAACPBAAg7wIAAJAEADAEHgAA_QMAMOkCAAD-AwAw6wIAAIAEACDvAgAAgQQAMAAAAAAAAAAAAAAAAAAFHgAAmQYAIB8AAJwGACDpAgAAmgYAIOoCAACbBgAg7wIAAB0AIAMeAACZBgAg6QIAAJoGACDvAgAAHQAgAAAAAAAFHgAAlAYAIB8AAJcGACDpAgAAlQYAIOoCAACWBgAg7wIAAB0AIAMeAACUBgAg6QIAAJUGACDvAgAAHQAgAAAABR4AAI8GACAfAACSBgAg6QIAAJAGACDqAgAAkQYAIO8CAAAdACADHgAAjwYAIOkCAACQBgAg7wIAAB0AIAAAAAAABR4AAIoGACAfAACNBgAg6QIAAIsGACDqAgAAjAYAIO8CAAATACADHgAAigYAIOkCAACLBgAg7wIAABMAIAAAAAseAACQBQAwHwAAlAUAMOkCAACRBQAw6gIAAJIFADDrAgAAkwUAIOwCAACQBAAw7QIAAJAEADDuAgAAkAQAMO8CAACQBAAw8AIAAJUFADDxAgAAkwQAMAsKAACLBQAgDwAAxgQAIBAAAMcEACARAADIBAAgjgIBAAAAAaYCAQAAAAGuAkAAAAABrwJAAAAAAcACAQAAAAHCAgIAAAABwwIQAAAAAQIAAAAdACAeAACYBQAgAwAAAB0AIB4AAJgFACAfAACXBQAgARcAAIkGADACAAAAHQAgFwAAlwUAIAIAAACUBAAgFwAAlgUAIAeOAgEA-QMAIaYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcACAQD5AwAhwgICAJYEACHDAhAA-gMAIQsKAACKBQAgDwAAmQQAIBAAAJoEACARAACbBAAgjgIBAPkDACGmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHAAgEA-QMAIcICAgCWBAAhwwIQAPoDACELCgAAiwUAIA8AAMYEACAQAADHBAAgEQAAyAQAII4CAQAAAAGmAgEAAAABrgJAAAAAAa8CQAAAAAHAAgEAAAABwgICAAAAAcMCEAAAAAEEHgAAkAUAMOkCAACRBQAw6wIAAJMFACDvAgAAkAQAMAAAAAAFHgAAhAYAIB8AAIcGACDpAgAAhQYAIOoCAACGBgAg7wIAABMAIAMeAACEBgAg6QIAAIUGACDvAgAAEwAgAAAABR4AAP8FACAfAACCBgAg6QIAAIAGACDqAgAAgQYAIO8CAAATACADHgAA_wUAIOkCAACABgAg7wIAABMAIAAAAAceAAD6BQAgHwAA_QUAIOkCAAD7BQAg6gIAAPwFACDtAgAADwAg7gIAAA8AIO8CAAD5AgAgAx4AAPoFACDpAgAA-wUAIO8CAAD5AgAgAAAAAAAABR4AAPUFACAfAAD4BQAg6QIAAPYFACDqAgAA9wUAIO8CAAABACADHgAA9QUAIOkCAAD2BQAg7wIAAAEAIAAAAAUeAADwBQAgHwAA8wUAIOkCAADxBQAg6gIAAPIFACDvAgAAAQAgAx4AAPAFACDpAgAA8QUAIO8CAAABACAAAAALHgAA0gUAMB8AANcFADDpAgAA0wUAMOoCAADUBQAw6wIAANUFACDsAgAA1gUAMO0CAADWBQAw7gIAANYFADDvAgAA1gUAMPACAADYBQAw8QIAANkFADALHgAAxgUAMB8AAMsFADDpAgAAxwUAMOoCAADIBQAw6wIAAMkFACDsAgAAygUAMO0CAADKBQAw7gIAAMoFADDvAgAAygUAMPACAADMBQAw8QIAAM0FADALHgAAvQUAMB8AAMEFADDpAgAAvgUAMOoCAAC_BQAw6wIAAMAFACDsAgAA2gQAMO0CAADaBAAw7gIAANoEADDvAgAA2gQAMPACAADCBQAw8QIAAN0EADAECgAApAUAIK4CQAAAAAHAAgEAAAABywIAAADLAgICAAAADQAgHgAAxQUAIAMAAAANACAeAADFBQAgHwAAxAUAIAEXAADvBQAwAgAAAA0AIBcAAMQFACACAAAA3gQAIBcAAMMFACADrgJAAPsDACHAAgEA-QMAIcsCAADgBMsCIgQKAACjBQAgrgJAAPsDACHAAgEA-QMAIcsCAADgBMsCIgQKAACkBQAgrgJAAAAAAcACAQAAAAHLAgAAAMsCAgymAgEAAAABrgJAAAAAAa8CQAAAAAHWAgEAAAAB1wIBAAAAAdgCAQAAAAHZAgEAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAAB3QIBAAAAAd4CAQAAAAECAAAACQAgHgAA0QUAIAMAAAAJACAeAADRBQAgHwAA0AUAIAEXAADuBQAwEQMAAPEDACCKAgAA8gMAMIsCAAAHABCMAgAA8gMAMKYCAQAAAAGuAkAAogMAIa8CQACiAwAhyQIBAJ8DACHWAgEAnwMAIdcCAQCfAwAh2AIBALwDACHZAgEAvAMAIdoCAQC8AwAh2wJAALEDACHcAkAAsQMAId0CAQC8AwAh3gIBALwDACECAAAACQAgFwAA0AUAIAIAAADOBQAgFwAAzwUAIBCKAgAAzQUAMIsCAADOBQAQjAIAAM0FADCmAgEAnwMAIa4CQACiAwAhrwJAAKIDACHJAgEAnwMAIdYCAQCfAwAh1wIBAJ8DACHYAgEAvAMAIdkCAQC8AwAh2gIBALwDACHbAkAAsQMAIdwCQACxAwAh3QIBALwDACHeAgEAvAMAIRCKAgAAzQUAMIsCAADOBQAQjAIAAM0FADCmAgEAnwMAIa4CQACiAwAhrwJAAKIDACHJAgEAnwMAIdYCAQCfAwAh1wIBAJ8DACHYAgEAvAMAIdkCAQC8AwAh2gIBALwDACHbAkAAsQMAIdwCQACxAwAh3QIBALwDACHeAgEAvAMAIQymAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHWAgEA-QMAIdcCAQD5AwAh2AIBAIcEACHZAgEAhwQAIdoCAQCHBAAh2wJAANMEACHcAkAA0wQAId0CAQCHBAAh3gIBAIcEACEMpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAh1gIBAPkDACHXAgEA-QMAIdgCAQCHBAAh2QIBAIcEACHaAgEAhwQAIdsCQADTBAAh3AJAANMEACHdAgEAhwQAId4CAQCHBAAhDKYCAQAAAAGuAkAAAAABrwJAAAAAAdYCAQAAAAHXAgEAAAAB2AIBAAAAAdkCAQAAAAHaAgEAAAAB2wJAAAAAAdwCQAAAAAHdAgEAAAAB3gIBAAAAAQemAgEAAAABrgJAAAAAAa8CQAAAAAHGAkAAAAAB3wIBAAAAAeACAQAAAAHhAgEAAAABAgAAAAUAIB4AAN0FACADAAAABQAgHgAA3QUAIB8AANwFACABFwAA7QUAMAwDAADxAwAgigIAAPMDADCLAgAAAwAQjAIAAPMDADCmAgEAAAABrgJAAKIDACGvAkAAogMAIcYCQACiAwAhyQIBAJ8DACHfAgEAAAAB4AIBALwDACHhAgEAvAMAIQIAAAAFACAXAADcBQAgAgAAANoFACAXAADbBQAgC4oCAADZBQAwiwIAANoFABCMAgAA2QUAMKYCAQCfAwAhrgJAAKIDACGvAkAAogMAIcYCQACiAwAhyQIBAJ8DACHfAgEAnwMAIeACAQC8AwAh4QIBALwDACELigIAANkFADCLAgAA2gUAEIwCAADZBQAwpgIBAJ8DACGuAkAAogMAIa8CQACiAwAhxgJAAKIDACHJAgEAnwMAId8CAQCfAwAh4AIBALwDACHhAgEAvAMAIQemAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHGAkAA-wMAId8CAQD5AwAh4AIBAIcEACHhAgEAhwQAIQemAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHGAkAA-wMAId8CAQD5AwAh4AIBAIcEACHhAgEAhwQAIQemAgEAAAABrgJAAAAAAa8CQAAAAAHGAkAAAAAB3wIBAAAAAeACAQAAAAHhAgEAAAABBB4AANIFADDpAgAA0wUAMOsCAADVBQAg7wIAANYFADAEHgAAxgUAMOkCAADHBQAw6wIAAMkFACDvAgAAygUAMAQeAAC9BQAw6QIAAL4FADDrAgAAwAUAIO8CAADaBAAwAAAABQoAAOUFACANAADmBQAgDwAA5wUAIBAAAOgFACARAADpBQAgCQgAAOoFACAJAADjBQAgCwAA6wUAIAwAAJoFACDNAgAA6wQAIM4CAADrBAAgzwIAAOsEACDQAgAA6wQAINMCAADrBAAgAQwAAJoFACAAAAABBgAA6gQAIAAFBAAA4QUAIAUAAOIFACAGAADjBQAg4wIAAOsEACDkAgAA6wQAIAemAgEAAAABrgJAAAAAAa8CQAAAAAHGAkAAAAAB3wIBAAAAAeACAQAAAAHhAgEAAAABDKYCAQAAAAGuAkAAAAABrwJAAAAAAdYCAQAAAAHXAgEAAAAB2AIBAAAAAdkCAQAAAAHaAgEAAAAB2wJAAAAAAdwCQAAAAAHdAgEAAAAB3gIBAAAAAQOuAkAAAAABwAIBAAAAAcsCAAAAywICCwUAAN8FACAGAADgBQAgjgIBAAAAAaYCAQAAAAGnAgEAAAABrgJAAAAAAa8CQAAAAAHLAgEAAAAB4gIgAAAAAeMCAQAAAAHkAgEAAAABAgAAAAEAIB4AAPAFACADAAAANwAgHgAA8AUAIB8AAPQFACANAAAANwAgBQAAuwUAIAYAALwFACAXAAD0BQAgjgIBAPkDACGmAgEA-QMAIacCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcsCAQD5AwAh4gIgALQEACHjAgEAhwQAIeQCAQCHBAAhCwUAALsFACAGAAC8BQAgjgIBAPkDACGmAgEA-QMAIacCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcsCAQD5AwAh4gIgALQEACHjAgEAhwQAIeQCAQCHBAAhCwQAAN4FACAGAADgBQAgjgIBAAAAAaYCAQAAAAGnAgEAAAABrgJAAAAAAa8CQAAAAAHLAgEAAAAB4gIgAAAAAeMCAQAAAAHkAgEAAAABAgAAAAEAIB4AAPUFACADAAAANwAgHgAA9QUAIB8AAPkFACANAAAANwAgBAAAugUAIAYAALwFACAXAAD5BQAgjgIBAPkDACGmAgEA-QMAIacCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcsCAQD5AwAh4gIgALQEACHjAgEAhwQAIeQCAQCHBAAhCwQAALoFACAGAAC8BQAgjgIBAPkDACGmAgEA-QMAIacCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcsCAQD5AwAh4gIgALQEACHjAgEAhwQAIeQCAQCHBAAhBY0CAQAAAAGOAgEAAAABjwIQAAAAAZACgAAAAAGRAkAAAAABAgAAAPkCACAeAAD6BQAgAwAAAA8AIB4AAPoFACAfAAD-BQAgBwAAAA8AIBcAAP4FACCNAgEA-QMAIY4CAQD5AwAhjwIQAPoDACGQAoAAAAABkQJAAPsDACEFjQIBAPkDACGOAgEA-QMAIY8CEAD6AwAhkAKAAAAAAZECQAD7AwAhDggAAKkFACALAADnBAAgDAAA6AQAIKYCAQAAAAGuAkAAAAABrwJAAAAAAcwCAQAAAAHNAgEAAAABzgIBAAAAAc8CAQAAAAHQAgEAAAAB0QIBAAAAAdICAQAAAAHTAgEAAAABAgAAABMAIB4AAP8FACADAAAAEQAgHgAA_wUAIB8AAIMGACAQAAAAEQAgCAAAqAUAIAsAAIoEACAMAACLBAAgFwAAgwYAIKYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcwCAQD5AwAhzQIBAIcEACHOAgEAhwQAIc8CAQCHBAAh0AIBAIcEACHRAgEA-QMAIdICAQD5AwAh0wIBAIcEACEOCAAAqAUAIAsAAIoEACAMAACLBAAgpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhzAIBAPkDACHNAgEAhwQAIc4CAQCHBAAhzwIBAIcEACHQAgEAhwQAIdECAQD5AwAh0gIBAPkDACHTAgEAhwQAIQ4IAACpBQAgCQAA5gQAIAwAAOgEACCmAgEAAAABrgJAAAAAAa8CQAAAAAHMAgEAAAABzQIBAAAAAc4CAQAAAAHPAgEAAAAB0AIBAAAAAdECAQAAAAHSAgEAAAAB0wIBAAAAAQIAAAATACAeAACEBgAgAwAAABEAIB4AAIQGACAfAACIBgAgEAAAABEAIAgAAKgFACAJAACJBAAgDAAAiwQAIBcAAIgGACCmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHMAgEA-QMAIc0CAQCHBAAhzgIBAIcEACHPAgEAhwQAIdACAQCHBAAh0QIBAPkDACHSAgEA-QMAIdMCAQCHBAAhDggAAKgFACAJAACJBAAgDAAAiwQAIKYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcwCAQD5AwAhzQIBAIcEACHOAgEAhwQAIc8CAQCHBAAh0AIBAIcEACHRAgEA-QMAIdICAQD5AwAh0wIBAIcEACEHjgIBAAAAAaYCAQAAAAGuAkAAAAABrwJAAAAAAcACAQAAAAHCAgIAAAABwwIQAAAAAQ4IAACpBQAgCQAA5gQAIAsAAOcEACCmAgEAAAABrgJAAAAAAa8CQAAAAAHMAgEAAAABzQIBAAAAAc4CAQAAAAHPAgEAAAAB0AIBAAAAAdECAQAAAAHSAgEAAAAB0wIBAAAAAQIAAAATACAeAACKBgAgAwAAABEAIB4AAIoGACAfAACOBgAgEAAAABEAIAgAAKgFACAJAACJBAAgCwAAigQAIBcAAI4GACCmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHMAgEA-QMAIc0CAQCHBAAhzgIBAIcEACHPAgEAhwQAIdACAQCHBAAh0QIBAPkDACHSAgEA-QMAIdMCAQCHBAAhDggAAKgFACAJAACJBAAgCwAAigQAIKYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcwCAQD5AwAhzQIBAIcEACHOAgEAhwQAIc8CAQCHBAAh0AIBAIcEACHRAgEA-QMAIdICAQD5AwAh0wIBAIcEACEMCgAAiwUAIA0AAMUEACAQAADHBAAgEQAAyAQAII4CAQAAAAGmAgEAAAABrgJAAAAAAa8CQAAAAAHAAgEAAAABwQIBAAAAAcICAgAAAAHDAhAAAAABAgAAAB0AIB4AAI8GACADAAAAGwAgHgAAjwYAIB8AAJMGACAOAAAAGwAgCgAAigUAIA0AAJgEACAQAACaBAAgEQAAmwQAIBcAAJMGACCOAgEA-QMAIaYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcACAQD5AwAhwQIBAPkDACHCAgIAlgQAIcMCEAD6AwAhDAoAAIoFACANAACYBAAgEAAAmgQAIBEAAJsEACCOAgEA-QMAIaYCAQD5AwAhrgJAAPsDACGvAkAA-wMAIcACAQD5AwAhwQIBAPkDACHCAgIAlgQAIcMCEAD6AwAhDAoAAIsFACANAADFBAAgDwAAxgQAIBEAAMgEACCOAgEAAAABpgIBAAAAAa4CQAAAAAGvAkAAAAABwAIBAAAAAcECAQAAAAHCAgIAAAABwwIQAAAAAQIAAAAdACAeAACUBgAgAwAAABsAIB4AAJQGACAfAACYBgAgDgAAABsAIAoAAIoFACANAACYBAAgDwAAmQQAIBEAAJsEACAXAACYBgAgjgIBAPkDACGmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHAAgEA-QMAIcECAQD5AwAhwgICAJYEACHDAhAA-gMAIQwKAACKBQAgDQAAmAQAIA8AAJkEACARAACbBAAgjgIBAPkDACGmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACHAAgEA-QMAIcECAQD5AwAhwgICAJYEACHDAhAA-gMAIQwKAACLBQAgDQAAxQQAIA8AAMYEACAQAADHBAAgjgIBAAAAAaYCAQAAAAGuAkAAAAABrwJAAAAAAcACAQAAAAHBAgEAAAABwgICAAAAAcMCEAAAAAECAAAAHQAgHgAAmQYAIAMAAAAbACAeAACZBgAgHwAAnQYAIA4AAAAbACAKAACKBQAgDQAAmAQAIA8AAJkEACAQAACaBAAgFwAAnQYAII4CAQD5AwAhpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhwAIBAPkDACHBAgEA-QMAIcICAgCWBAAhwwIQAPoDACEMCgAAigUAIA0AAJgEACAPAACZBAAgEAAAmgQAII4CAQD5AwAhpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhwAIBAPkDACHBAgEA-QMAIcICAgCWBAAhwwIQAPoDACELBAAA3gUAIAUAAN8FACCOAgEAAAABpgIBAAAAAacCAQAAAAGuAkAAAAABrwJAAAAAAcsCAQAAAAHiAiAAAAAB4wIBAAAAAeQCAQAAAAECAAAAAQAgHgAAngYAIAMAAAA3ACAeAACeBgAgHwAAogYAIA0AAAA3ACAEAAC6BQAgBQAAuwUAIBcAAKIGACCOAgEA-QMAIaYCAQD5AwAhpwIBAPkDACGuAkAA-wMAIa8CQAD7AwAhywIBAPkDACHiAiAAtAQAIeMCAQCHBAAh5AIBAIcEACELBAAAugUAIAUAALsFACCOAgEA-QMAIaYCAQD5AwAhpwIBAPkDACGuAkAA-wMAIa8CQAD7AwAhywIBAPkDACHiAiAAtAQAIeMCAQCHBAAh5AIBAIcEACEDrgJAAAAAAckCAQAAAAHLAgAAAMsCAgimAgEAAAABpwIBAAAAAa4CQAAAAAGvAkAAAAABxQIBAAAAAcYCQAAAAAHHAkAAAAAByAJAAAAAAQaOAgEAAAABpgIBAAAAAa4CQAAAAAGvAkAAAAABvwIgAAAAAcQCAQAAAAECAAAA1gEAIB4AAKUGACAFpgIBAAAAAa4CQAAAAAGzAgEAAAABtAIBAAAAAb4CAAAAvgICCI8CEAAAAAGmAgEAAAABrgJAAAAAAa8CQAAAAAGzAgEAAAABtAIBAAAAAb4CAAAAvgIDvwIgAAAAAQumAgEAAAABrgJAAAAAAa8CQAAAAAGwAgEAAAABsgJAAAAAAbMCAQAAAAG0AgEAAAABuAIBAAAAAbkCAQAAAAG6AgEAAAABvAIAAAC2AgIDAAAA2QEAIB4AAKUGACAfAACsBgAgCAAAANkBACAXAACsBgAgjgIBAPkDACGmAgEA-QMAIa4CQAD7AwAhrwJAAPsDACG_AiAAtAQAIcQCAQD5AwAhBo4CAQD5AwAhpgIBAPkDACGuAkAA-wMAIa8CQAD7AwAhvwIgALQEACHEAgEA-QMAIQeOAgEAAAABpgIBAAAAAa4CQAAAAAGvAkAAAAABwQIBAAAAAcICAgAAAAHDAhAAAAABCqYCAQAAAAGuAkAAAAABrwJAAAAAAcwCAQAAAAHNAgEAAAABzgIBAAAAAc8CAQAAAAHQAgEAAAAB0QIBAAAAAdICAQAAAAEEBAYCBQoDBg4EBwARAQMAAQEDAAECAwABCgAFBQcAEAgQBgkWBAsaCAweCQIGFAUHAAcBBhUAAQoABQYHAA8KAAUNAAoPJAwQKA0RLA4CBwALDB8JAQwgAAEOAAkBDgAJAQ4ACQMPLQAQLgARLwADCTAACzEADDIAAwQzAAU0AAY1AAAAAAMHABYkABclABgAAAADBwAWJAAXJQAYAQMAAQEDAAEDBwAdJAAeJQAfAAAAAwcAHSQAHiUAHwEDAAEBAwABAwcAJCQAJSUAJgAAAAMHACQkACUlACYAAAADBwAsJAAtJQAuAAAAAwcALCQALSUALgEInAEGAQiiAQYDBwAzJAA0JQA1AAAAAwcAMyQANCUANQIDAAEKAAUCAwABCgAFAwcAOiQAOyUAPAAAAAMHADokADslADwBCgAFAQoABQMHAEEkAEIlAEMAAAADBwBBJABCJQBDAAADBwBIJABJJQBKAAAAAwcASCQASSUASgIKAAUNAAoCCgAFDQAKBQcATyQAUiUAU6YBAFCnAQBRAAAAAAAFBwBPJABSJQBTpgEAUKcBAFEBDgAJAQ4ACQMHAFgkAFklAFoAAAADBwBYJABZJQBaAQ4ACQEOAAkFBwBfJABiJQBjpgEAYKcBAGEAAAAAAAUHAF8kAGIlAGOmAQBgpwEAYQEOAAkBDgAJAwcAaCQAaSUAagAAAAMHAGgkAGklAGoAAAADBwBwJABxJQByAAAAAwcAcCQAcSUAcgAAAAUHAHgkAHslAHymAQB5pwEAegAAAAAABQcAeCQAeyUAfKYBAHmnAQB6AAAFBwCBASQAhAElAIUBpgEAggGnAQCDAQAAAAAABQcAgQEkAIQBJQCFAaYBAIIBpwEAgwESAgETNgEUOQEVOgEWOwEYPQEZPxIaQBMbQgEcRBIdRRQgRgEhRwEiSBImSxUnTBkoTQIpTgIqTwIrUAIsUQItUwIuVRIvVhowWAIxWhIyWxszXAI0XQI1XhI2YRw3YiA4YwM5ZAM6ZQM7ZgM8ZwM9aQM-axI_bCFAbgNBcBJCcSJDcgNEcwNFdBJGdyNHeCdIeihJeyhKfihLfyhMgAEoTYIBKE6EARJPhQEpUIcBKFGJARJSigEqU4sBKFSMAShVjQESVpABK1eRAS9YkgEFWZMBBVqUAQVblQEFXJYBBV2YAQVemgESX5sBMGCeAQVhoAESYqEBMWOjAQVkpAEFZaUBEmaoATJnqQE2aKoBBGmrAQRqrAEEa60BBGyuAQRtsAEEbrIBEm-zATdwtQEEcbcBEnK4AThzuQEEdLoBBHW7ARJ2vgE5d78BPXjAAQh5wQEIesIBCHvDAQh8xAEIfcYBCH7IARJ_yQE-gAHLAQiBAc0BEoIBzgE_gwHPAQiEAdABCIUB0QEShgHUAUCHAdUBRIgB1wEKiQHYAQqKAdsBCosB3AEKjAHdAQqNAd8BCo4B4QESjwHiAUWQAeQBCpEB5gESkgHnAUaTAegBCpQB6QEKlQHqARKWAe0BR5cB7gFLmAHvAQmZAfABCZoB8QEJmwHyAQmcAfMBCZ0B9QEJngH3ARKfAfgBTKAB-gEJoQH8ARKiAf0BTaMB_gEJpAH_AQmlAYACEqgBgwJOqQGEAlSqAYUCDKsBhgIMrAGHAgytAYgCDK4BiQIMrwGLAgywAY0CErEBjgJVsgGQAgyzAZICErQBkwJWtQGUAgy2AZUCDLcBlgISuAGZAle5AZoCW7oBmwINuwGcAg28AZ0CDb0BngINvgGfAg2_AaECDcABowISwQGkAlzCAaYCDcMBqAISxAGpAl3FAaoCDcYBqwINxwGsAhLIAa8CXskBsAJkygGxAg7LAbICDswBswIOzQG0Ag7OAbUCDs8BtwIO0AG5AhLRAboCZdIBvAIO0wG-AhLUAb8CZtUBwAIO1gHBAg7XAcICEtgBxQJn2QHGAmvaAcgCbNsByQJs3AHMAmzdAc0CbN4BzgJs3wHQAmzgAdICEuEB0wJt4gHVAmzjAdcCEuQB2AJu5QHZAmzmAdoCbOcB2wIS6AHeAm_pAd8Cc-oB4QJ06wHiAnTsAeUCdO0B5gJ07gHnAnTvAekCdPAB6wIS8QHsAnXyAe4CdPMB8AIS9AHxAnb1AfICdPYB8wJ09wH0AhL4AfcCd_kB-AJ9-gH6Agb7AfsCBvwB_QIG_QH-Agb-Af8CBv8BgQMGgAKDAxKBAoQDfoIChgMGgwKIAxKEAokDf4UCigMGhgKLAwaHAowDEogCjwOAAYkCkAOGAQ" } async function decodeBase64AsWasm(wasmBase64: string): Promise { @@ -318,16 +318,6 @@ export interface PrismaClient< */ get courtBookingLog(): Prisma.CourtBookingLogDelegate; - /** - * `prisma.onboardingRequest`: Exposes CRUD operations for the **OnboardingRequest** model. - * Example usage: - * ```ts - * // Fetch zero or more OnboardingRequests - * const onboardingRequests = await prisma.onboardingRequest.findMany() - * ``` - */ - get onboardingRequest(): Prisma.OnboardingRequestDelegate; - /** * `prisma.passwordResetRequest`: Exposes CRUD operations for the **PasswordResetRequest** model. * Example usage: diff --git a/apps/backend/src/generated/prisma/internal/prismaNamespace.ts b/apps/backend/src/generated/prisma/internal/prismaNamespace.ts index fc6691e..7eebafc 100644 --- a/apps/backend/src/generated/prisma/internal/prismaNamespace.ts +++ b/apps/backend/src/generated/prisma/internal/prismaNamespace.ts @@ -397,7 +397,6 @@ export const ModelName = { CourtPriceRule: 'CourtPriceRule', CourtBooking: 'CourtBooking', CourtBookingLog: 'CourtBookingLog', - OnboardingRequest: 'OnboardingRequest', PasswordResetRequest: 'PasswordResetRequest', Plan: 'Plan' } as const @@ -415,7 +414,7 @@ export type TypeMap - fields: Prisma.OnboardingRequestFieldRefs - operations: { - findUnique: { - args: Prisma.OnboardingRequestFindUniqueArgs - result: runtime.Types.Utils.PayloadToResult | null - } - findUniqueOrThrow: { - args: Prisma.OnboardingRequestFindUniqueOrThrowArgs - result: runtime.Types.Utils.PayloadToResult - } - findFirst: { - args: Prisma.OnboardingRequestFindFirstArgs - result: runtime.Types.Utils.PayloadToResult | null - } - findFirstOrThrow: { - args: Prisma.OnboardingRequestFindFirstOrThrowArgs - result: runtime.Types.Utils.PayloadToResult - } - findMany: { - args: Prisma.OnboardingRequestFindManyArgs - result: runtime.Types.Utils.PayloadToResult[] - } - create: { - args: Prisma.OnboardingRequestCreateArgs - result: runtime.Types.Utils.PayloadToResult - } - createMany: { - args: Prisma.OnboardingRequestCreateManyArgs - result: BatchPayload - } - createManyAndReturn: { - args: Prisma.OnboardingRequestCreateManyAndReturnArgs - result: runtime.Types.Utils.PayloadToResult[] - } - delete: { - args: Prisma.OnboardingRequestDeleteArgs - result: runtime.Types.Utils.PayloadToResult - } - update: { - args: Prisma.OnboardingRequestUpdateArgs - result: runtime.Types.Utils.PayloadToResult - } - deleteMany: { - args: Prisma.OnboardingRequestDeleteManyArgs - result: BatchPayload - } - updateMany: { - args: Prisma.OnboardingRequestUpdateManyArgs - result: BatchPayload - } - updateManyAndReturn: { - args: Prisma.OnboardingRequestUpdateManyAndReturnArgs - result: runtime.Types.Utils.PayloadToResult[] - } - upsert: { - args: Prisma.OnboardingRequestUpsertArgs - result: runtime.Types.Utils.PayloadToResult - } - aggregate: { - args: Prisma.OnboardingRequestAggregateArgs - result: runtime.Types.Utils.Optional - } - groupBy: { - args: Prisma.OnboardingRequestGroupByArgs - result: runtime.Types.Utils.Optional[] - } - count: { - args: Prisma.OnboardingRequestCountArgs - result: runtime.Types.Utils.Optional | number - } - } - } PasswordResetRequest: { payload: Prisma.$PasswordResetRequestPayload fields: Prisma.PasswordResetRequestFieldRefs @@ -1806,6 +1731,7 @@ export const CourtBookingScalarFieldEnum = { endTime: 'endTime', customerName: 'customerName', customerPhone: 'customerPhone', + customerEmail: 'customerEmail', status: 'status', createdAt: 'createdAt', updatedAt: 'updatedAt' @@ -1825,30 +1751,13 @@ export const CourtBookingLogScalarFieldEnum = { newStatus: 'newStatus', customerName: 'customerName', customerPhone: 'customerPhone', + customerEmail: 'customerEmail', changedAt: 'changedAt' } as const export type CourtBookingLogScalarFieldEnum = (typeof CourtBookingLogScalarFieldEnum)[keyof typeof CourtBookingLogScalarFieldEnum] -export const OnboardingRequestScalarFieldEnum = { - id: 'id', - fullName: 'fullName', - email: 'email', - otpHash: 'otpHash', - otpExpiresAt: 'otpExpiresAt', - otpAttempts: 'otpAttempts', - otpLastSentAt: 'otpLastSentAt', - otpResendCount: 'otpResendCount', - emailVerifiedAt: 'emailVerifiedAt', - completedAt: 'completedAt', - createdAt: 'createdAt', - updatedAt: 'updatedAt' -} as const - -export type OnboardingRequestScalarFieldEnum = (typeof OnboardingRequestScalarFieldEnum)[keyof typeof OnboardingRequestScalarFieldEnum] - - export const PasswordResetRequestScalarFieldEnum = { id: 'id', email: 'email', @@ -2162,7 +2071,6 @@ export type GlobalOmitConfig = { courtPriceRule?: Prisma.CourtPriceRuleOmit courtBooking?: Prisma.CourtBookingOmit courtBookingLog?: Prisma.CourtBookingLogOmit - onboardingRequest?: Prisma.OnboardingRequestOmit passwordResetRequest?: Prisma.PasswordResetRequestOmit plan?: Prisma.PlanOmit } diff --git a/apps/backend/src/generated/prisma/internal/prismaNamespaceBrowser.ts b/apps/backend/src/generated/prisma/internal/prismaNamespaceBrowser.ts index 659ab1a..51b012f 100644 --- a/apps/backend/src/generated/prisma/internal/prismaNamespaceBrowser.ts +++ b/apps/backend/src/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -64,7 +64,6 @@ export const ModelName = { CourtPriceRule: 'CourtPriceRule', CourtBooking: 'CourtBooking', CourtBookingLog: 'CourtBookingLog', - OnboardingRequest: 'OnboardingRequest', PasswordResetRequest: 'PasswordResetRequest', Plan: 'Plan' } as const @@ -249,6 +248,7 @@ export const CourtBookingScalarFieldEnum = { endTime: 'endTime', customerName: 'customerName', customerPhone: 'customerPhone', + customerEmail: 'customerEmail', status: 'status', createdAt: 'createdAt', updatedAt: 'updatedAt' @@ -268,30 +268,13 @@ export const CourtBookingLogScalarFieldEnum = { newStatus: 'newStatus', customerName: 'customerName', customerPhone: 'customerPhone', + customerEmail: 'customerEmail', changedAt: 'changedAt' } as const export type CourtBookingLogScalarFieldEnum = (typeof CourtBookingLogScalarFieldEnum)[keyof typeof CourtBookingLogScalarFieldEnum] -export const OnboardingRequestScalarFieldEnum = { - id: 'id', - fullName: 'fullName', - email: 'email', - otpHash: 'otpHash', - otpExpiresAt: 'otpExpiresAt', - otpAttempts: 'otpAttempts', - otpLastSentAt: 'otpLastSentAt', - otpResendCount: 'otpResendCount', - emailVerifiedAt: 'emailVerifiedAt', - completedAt: 'completedAt', - createdAt: 'createdAt', - updatedAt: 'updatedAt' -} as const - -export type OnboardingRequestScalarFieldEnum = (typeof OnboardingRequestScalarFieldEnum)[keyof typeof OnboardingRequestScalarFieldEnum] - - export const PasswordResetRequestScalarFieldEnum = { id: 'id', email: 'email', diff --git a/apps/backend/src/generated/prisma/models.ts b/apps/backend/src/generated/prisma/models.ts index e243233..90f253a 100644 --- a/apps/backend/src/generated/prisma/models.ts +++ b/apps/backend/src/generated/prisma/models.ts @@ -21,7 +21,6 @@ export type * from './models/CourtAvailability' export type * from './models/CourtPriceRule' export type * from './models/CourtBooking' export type * from './models/CourtBookingLog' -export type * from './models/OnboardingRequest' export type * from './models/PasswordResetRequest' export type * from './models/Plan' export type * from './commonInputTypes' \ No newline at end of file diff --git a/apps/backend/src/generated/prisma/models/CourtBooking.ts b/apps/backend/src/generated/prisma/models/CourtBooking.ts index 13f0a2c..00ca840 100644 --- a/apps/backend/src/generated/prisma/models/CourtBooking.ts +++ b/apps/backend/src/generated/prisma/models/CourtBooking.ts @@ -33,6 +33,7 @@ export type CourtBookingMinAggregateOutputType = { endTime: string | null customerName: string | null customerPhone: string | null + customerEmail: string | null status: $Enums.CourtBookingStatus | null createdAt: Date | null updatedAt: Date | null @@ -47,6 +48,7 @@ export type CourtBookingMaxAggregateOutputType = { endTime: string | null customerName: string | null customerPhone: string | null + customerEmail: string | null status: $Enums.CourtBookingStatus | null createdAt: Date | null updatedAt: Date | null @@ -61,6 +63,7 @@ export type CourtBookingCountAggregateOutputType = { endTime: number customerName: number customerPhone: number + customerEmail: number status: number createdAt: number updatedAt: number @@ -77,6 +80,7 @@ export type CourtBookingMinAggregateInputType = { endTime?: true customerName?: true customerPhone?: true + customerEmail?: true status?: true createdAt?: true updatedAt?: true @@ -91,6 +95,7 @@ export type CourtBookingMaxAggregateInputType = { endTime?: true customerName?: true customerPhone?: true + customerEmail?: true status?: true createdAt?: true updatedAt?: true @@ -105,6 +110,7 @@ export type CourtBookingCountAggregateInputType = { endTime?: true customerName?: true customerPhone?: true + customerEmail?: true status?: true createdAt?: true updatedAt?: true @@ -192,6 +198,7 @@ export type CourtBookingGroupByOutputType = { endTime: string customerName: string customerPhone: string + customerEmail: string | null status: $Enums.CourtBookingStatus createdAt: Date updatedAt: Date @@ -227,6 +234,7 @@ export type CourtBookingWhereInput = { endTime?: Prisma.StringFilter<"CourtBooking"> | string customerName?: Prisma.StringFilter<"CourtBooking"> | string customerPhone?: Prisma.StringFilter<"CourtBooking"> | string + customerEmail?: Prisma.StringNullableFilter<"CourtBooking"> | string | null status?: Prisma.EnumCourtBookingStatusFilter<"CourtBooking"> | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeFilter<"CourtBooking"> | Date | string updatedAt?: Prisma.DateTimeFilter<"CourtBooking"> | Date | string @@ -242,6 +250,7 @@ export type CourtBookingOrderByWithRelationInput = { endTime?: Prisma.SortOrder customerName?: Prisma.SortOrder customerPhone?: Prisma.SortOrder + customerEmail?: Prisma.SortOrderInput | Prisma.SortOrder status?: Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder @@ -261,6 +270,7 @@ export type CourtBookingWhereUniqueInput = Prisma.AtLeast<{ endTime?: Prisma.StringFilter<"CourtBooking"> | string customerName?: Prisma.StringFilter<"CourtBooking"> | string customerPhone?: Prisma.StringFilter<"CourtBooking"> | string + customerEmail?: Prisma.StringNullableFilter<"CourtBooking"> | string | null status?: Prisma.EnumCourtBookingStatusFilter<"CourtBooking"> | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeFilter<"CourtBooking"> | Date | string updatedAt?: Prisma.DateTimeFilter<"CourtBooking"> | Date | string @@ -276,6 +286,7 @@ export type CourtBookingOrderByWithAggregationInput = { endTime?: Prisma.SortOrder customerName?: Prisma.SortOrder customerPhone?: Prisma.SortOrder + customerEmail?: Prisma.SortOrderInput | Prisma.SortOrder status?: Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder @@ -296,6 +307,7 @@ export type CourtBookingScalarWhereWithAggregatesInput = { endTime?: Prisma.StringWithAggregatesFilter<"CourtBooking"> | string customerName?: Prisma.StringWithAggregatesFilter<"CourtBooking"> | string customerPhone?: Prisma.StringWithAggregatesFilter<"CourtBooking"> | string + customerEmail?: Prisma.StringNullableWithAggregatesFilter<"CourtBooking"> | string | null status?: Prisma.EnumCourtBookingStatusWithAggregatesFilter<"CourtBooking"> | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeWithAggregatesFilter<"CourtBooking"> | Date | string updatedAt?: Prisma.DateTimeWithAggregatesFilter<"CourtBooking"> | Date | string @@ -309,6 +321,7 @@ export type CourtBookingCreateInput = { endTime: string customerName: string customerPhone: string + customerEmail?: string | null status?: $Enums.CourtBookingStatus createdAt?: Date | string updatedAt?: Date | string @@ -324,6 +337,7 @@ export type CourtBookingUncheckedCreateInput = { endTime: string customerName: string customerPhone: string + customerEmail?: string | null status?: $Enums.CourtBookingStatus createdAt?: Date | string updatedAt?: Date | string @@ -337,6 +351,7 @@ export type CourtBookingUpdateInput = { endTime?: Prisma.StringFieldUpdateOperationsInput | string customerName?: Prisma.StringFieldUpdateOperationsInput | string customerPhone?: Prisma.StringFieldUpdateOperationsInput | string + customerEmail?: Prisma.NullableStringFieldUpdateOperationsInput | string | null status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -352,6 +367,7 @@ export type CourtBookingUncheckedUpdateInput = { endTime?: Prisma.StringFieldUpdateOperationsInput | string customerName?: Prisma.StringFieldUpdateOperationsInput | string customerPhone?: Prisma.StringFieldUpdateOperationsInput | string + customerEmail?: Prisma.NullableStringFieldUpdateOperationsInput | string | null status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -366,6 +382,7 @@ export type CourtBookingCreateManyInput = { endTime: string customerName: string customerPhone: string + customerEmail?: string | null status?: $Enums.CourtBookingStatus createdAt?: Date | string updatedAt?: Date | string @@ -379,6 +396,7 @@ export type CourtBookingUpdateManyMutationInput = { endTime?: Prisma.StringFieldUpdateOperationsInput | string customerName?: Prisma.StringFieldUpdateOperationsInput | string customerPhone?: Prisma.StringFieldUpdateOperationsInput | string + customerEmail?: Prisma.NullableStringFieldUpdateOperationsInput | string | null status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -393,6 +411,7 @@ export type CourtBookingUncheckedUpdateManyInput = { endTime?: Prisma.StringFieldUpdateOperationsInput | string customerName?: Prisma.StringFieldUpdateOperationsInput | string customerPhone?: Prisma.StringFieldUpdateOperationsInput | string + customerEmail?: Prisma.NullableStringFieldUpdateOperationsInput | string | null status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -423,6 +442,7 @@ export type CourtBookingCountOrderByAggregateInput = { endTime?: Prisma.SortOrder customerName?: Prisma.SortOrder customerPhone?: Prisma.SortOrder + customerEmail?: Prisma.SortOrder status?: Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder @@ -437,6 +457,7 @@ export type CourtBookingMaxOrderByAggregateInput = { endTime?: Prisma.SortOrder customerName?: Prisma.SortOrder customerPhone?: Prisma.SortOrder + customerEmail?: Prisma.SortOrder status?: Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder @@ -451,6 +472,7 @@ export type CourtBookingMinOrderByAggregateInput = { endTime?: Prisma.SortOrder customerName?: Prisma.SortOrder customerPhone?: Prisma.SortOrder + customerEmail?: Prisma.SortOrder status?: Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder @@ -510,6 +532,7 @@ export type CourtBookingCreateWithoutCourtInput = { endTime: string customerName: string customerPhone: string + customerEmail?: string | null status?: $Enums.CourtBookingStatus createdAt?: Date | string updatedAt?: Date | string @@ -523,6 +546,7 @@ export type CourtBookingUncheckedCreateWithoutCourtInput = { endTime: string customerName: string customerPhone: string + customerEmail?: string | null status?: $Enums.CourtBookingStatus createdAt?: Date | string updatedAt?: Date | string @@ -566,6 +590,7 @@ export type CourtBookingScalarWhereInput = { endTime?: Prisma.StringFilter<"CourtBooking"> | string customerName?: Prisma.StringFilter<"CourtBooking"> | string customerPhone?: Prisma.StringFilter<"CourtBooking"> | string + customerEmail?: Prisma.StringNullableFilter<"CourtBooking"> | string | null status?: Prisma.EnumCourtBookingStatusFilter<"CourtBooking"> | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeFilter<"CourtBooking"> | Date | string updatedAt?: Prisma.DateTimeFilter<"CourtBooking"> | Date | string @@ -579,6 +604,7 @@ export type CourtBookingCreateManyCourtInput = { endTime: string customerName: string customerPhone: string + customerEmail?: string | null status?: $Enums.CourtBookingStatus createdAt?: Date | string updatedAt?: Date | string @@ -592,6 +618,7 @@ export type CourtBookingUpdateWithoutCourtInput = { endTime?: Prisma.StringFieldUpdateOperationsInput | string customerName?: Prisma.StringFieldUpdateOperationsInput | string customerPhone?: Prisma.StringFieldUpdateOperationsInput | string + customerEmail?: Prisma.NullableStringFieldUpdateOperationsInput | string | null status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -605,6 +632,7 @@ export type CourtBookingUncheckedUpdateWithoutCourtInput = { endTime?: Prisma.StringFieldUpdateOperationsInput | string customerName?: Prisma.StringFieldUpdateOperationsInput | string customerPhone?: Prisma.StringFieldUpdateOperationsInput | string + customerEmail?: Prisma.NullableStringFieldUpdateOperationsInput | string | null status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -618,6 +646,7 @@ export type CourtBookingUncheckedUpdateManyWithoutCourtInput = { endTime?: Prisma.StringFieldUpdateOperationsInput | string customerName?: Prisma.StringFieldUpdateOperationsInput | string customerPhone?: Prisma.StringFieldUpdateOperationsInput | string + customerEmail?: Prisma.NullableStringFieldUpdateOperationsInput | string | null status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string @@ -634,6 +663,7 @@ export type CourtBookingSelect = runtime.Types.Extensions.GetOmit<"id" | "bookingCode" | "courtId" | "bookingDate" | "startTime" | "endTime" | "customerName" | "customerPhone" | "status" | "createdAt" | "updatedAt", ExtArgs["result"]["courtBooking"]> +export type CourtBookingOmit = runtime.Types.Extensions.GetOmit<"id" | "bookingCode" | "courtId" | "bookingDate" | "startTime" | "endTime" | "customerName" | "customerPhone" | "customerEmail" | "status" | "createdAt" | "updatedAt", ExtArgs["result"]["courtBooking"]> export type CourtBookingInclude = { court?: boolean | Prisma.CourtDefaultArgs } @@ -709,6 +742,7 @@ export type $CourtBookingPayload readonly customerName: Prisma.FieldRef<"CourtBooking", 'String'> readonly customerPhone: Prisma.FieldRef<"CourtBooking", 'String'> + readonly customerEmail: Prisma.FieldRef<"CourtBooking", 'String'> readonly status: Prisma.FieldRef<"CourtBooking", 'CourtBookingStatus'> readonly createdAt: Prisma.FieldRef<"CourtBooking", 'DateTime'> readonly updatedAt: Prisma.FieldRef<"CourtBooking", 'DateTime'> diff --git a/apps/backend/src/generated/prisma/models/OnboardingRequest.ts b/apps/backend/src/generated/prisma/models/OnboardingRequest.ts deleted file mode 100644 index b7f62cc..0000000 --- a/apps/backend/src/generated/prisma/models/OnboardingRequest.ts +++ /dev/null @@ -1,1395 +0,0 @@ - -/* !!! This is code generated by Prisma. Do not edit directly. !!! */ -/* eslint-disable */ -// biome-ignore-all lint: generated file -// @ts-nocheck -/* - * This file exports the `OnboardingRequest` model and its related types. - * - * 🟢 You can import this file directly. - */ -import type * as runtime from "@prisma/client/runtime/client" -import type * as $Enums from "../enums" -import type * as Prisma from "../internal/prismaNamespace" - -/** - * Model OnboardingRequest - * - */ -export type OnboardingRequestModel = runtime.Types.Result.DefaultSelection - -export type AggregateOnboardingRequest = { - _count: OnboardingRequestCountAggregateOutputType | null - _avg: OnboardingRequestAvgAggregateOutputType | null - _sum: OnboardingRequestSumAggregateOutputType | null - _min: OnboardingRequestMinAggregateOutputType | null - _max: OnboardingRequestMaxAggregateOutputType | null -} - -export type OnboardingRequestAvgAggregateOutputType = { - otpAttempts: number | null - otpResendCount: number | null -} - -export type OnboardingRequestSumAggregateOutputType = { - otpAttempts: number | null - otpResendCount: number | null -} - -export type OnboardingRequestMinAggregateOutputType = { - id: string | null - fullName: string | null - email: string | null - otpHash: string | null - otpExpiresAt: Date | null - otpAttempts: number | null - otpLastSentAt: Date | null - otpResendCount: number | null - emailVerifiedAt: Date | null - completedAt: Date | null - createdAt: Date | null - updatedAt: Date | null -} - -export type OnboardingRequestMaxAggregateOutputType = { - id: string | null - fullName: string | null - email: string | null - otpHash: string | null - otpExpiresAt: Date | null - otpAttempts: number | null - otpLastSentAt: Date | null - otpResendCount: number | null - emailVerifiedAt: Date | null - completedAt: Date | null - createdAt: Date | null - updatedAt: Date | null -} - -export type OnboardingRequestCountAggregateOutputType = { - id: number - fullName: number - email: number - otpHash: number - otpExpiresAt: number - otpAttempts: number - otpLastSentAt: number - otpResendCount: number - emailVerifiedAt: number - completedAt: number - createdAt: number - updatedAt: number - _all: number -} - - -export type OnboardingRequestAvgAggregateInputType = { - otpAttempts?: true - otpResendCount?: true -} - -export type OnboardingRequestSumAggregateInputType = { - otpAttempts?: true - otpResendCount?: true -} - -export type OnboardingRequestMinAggregateInputType = { - id?: true - fullName?: true - email?: true - otpHash?: true - otpExpiresAt?: true - otpAttempts?: true - otpLastSentAt?: true - otpResendCount?: true - emailVerifiedAt?: true - completedAt?: true - createdAt?: true - updatedAt?: true -} - -export type OnboardingRequestMaxAggregateInputType = { - id?: true - fullName?: true - email?: true - otpHash?: true - otpExpiresAt?: true - otpAttempts?: true - otpLastSentAt?: true - otpResendCount?: true - emailVerifiedAt?: true - completedAt?: true - createdAt?: true - updatedAt?: true -} - -export type OnboardingRequestCountAggregateInputType = { - id?: true - fullName?: true - email?: true - otpHash?: true - otpExpiresAt?: true - otpAttempts?: true - otpLastSentAt?: true - otpResendCount?: true - emailVerifiedAt?: true - completedAt?: true - createdAt?: true - updatedAt?: true - _all?: true -} - -export type OnboardingRequestAggregateArgs = { - /** - * Filter which OnboardingRequest to aggregate. - */ - where?: Prisma.OnboardingRequestWhereInput - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} - * - * Determine the order of OnboardingRequests to fetch. - */ - orderBy?: Prisma.OnboardingRequestOrderByWithRelationInput | Prisma.OnboardingRequestOrderByWithRelationInput[] - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} - * - * Sets the start position - */ - cursor?: Prisma.OnboardingRequestWhereUniqueInput - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} - * - * Take `±n` OnboardingRequests from the position of the cursor. - */ - take?: number - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} - * - * Skip the first `n` OnboardingRequests. - */ - skip?: number - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} - * - * Count returned OnboardingRequests - **/ - _count?: true | OnboardingRequestCountAggregateInputType - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} - * - * Select which fields to average - **/ - _avg?: OnboardingRequestAvgAggregateInputType - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} - * - * Select which fields to sum - **/ - _sum?: OnboardingRequestSumAggregateInputType - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} - * - * Select which fields to find the minimum value - **/ - _min?: OnboardingRequestMinAggregateInputType - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} - * - * Select which fields to find the maximum value - **/ - _max?: OnboardingRequestMaxAggregateInputType -} - -export type GetOnboardingRequestAggregateType = { - [P in keyof T & keyof AggregateOnboardingRequest]: P extends '_count' | 'count' - ? T[P] extends true - ? number - : Prisma.GetScalarType - : Prisma.GetScalarType -} - - - - -export type OnboardingRequestGroupByArgs = { - where?: Prisma.OnboardingRequestWhereInput - orderBy?: Prisma.OnboardingRequestOrderByWithAggregationInput | Prisma.OnboardingRequestOrderByWithAggregationInput[] - by: Prisma.OnboardingRequestScalarFieldEnum[] | Prisma.OnboardingRequestScalarFieldEnum - having?: Prisma.OnboardingRequestScalarWhereWithAggregatesInput - take?: number - skip?: number - _count?: OnboardingRequestCountAggregateInputType | true - _avg?: OnboardingRequestAvgAggregateInputType - _sum?: OnboardingRequestSumAggregateInputType - _min?: OnboardingRequestMinAggregateInputType - _max?: OnboardingRequestMaxAggregateInputType -} - -export type OnboardingRequestGroupByOutputType = { - id: string - fullName: string - email: string - otpHash: string - otpExpiresAt: Date - otpAttempts: number - otpLastSentAt: Date - otpResendCount: number - emailVerifiedAt: Date | null - completedAt: Date | null - createdAt: Date - updatedAt: Date - _count: OnboardingRequestCountAggregateOutputType | null - _avg: OnboardingRequestAvgAggregateOutputType | null - _sum: OnboardingRequestSumAggregateOutputType | null - _min: OnboardingRequestMinAggregateOutputType | null - _max: OnboardingRequestMaxAggregateOutputType | null -} - -export type GetOnboardingRequestGroupByPayload = Prisma.PrismaPromise< - Array< - Prisma.PickEnumerable & - { - [P in ((keyof T) & (keyof OnboardingRequestGroupByOutputType))]: P extends '_count' - ? T[P] extends boolean - ? number - : Prisma.GetScalarType - : Prisma.GetScalarType - } - > - > - - - -export type OnboardingRequestWhereInput = { - AND?: Prisma.OnboardingRequestWhereInput | Prisma.OnboardingRequestWhereInput[] - OR?: Prisma.OnboardingRequestWhereInput[] - NOT?: Prisma.OnboardingRequestWhereInput | Prisma.OnboardingRequestWhereInput[] - id?: Prisma.UuidFilter<"OnboardingRequest"> | string - fullName?: Prisma.StringFilter<"OnboardingRequest"> | string - email?: Prisma.StringFilter<"OnboardingRequest"> | string - otpHash?: Prisma.StringFilter<"OnboardingRequest"> | string - otpExpiresAt?: Prisma.DateTimeFilter<"OnboardingRequest"> | Date | string - otpAttempts?: Prisma.IntFilter<"OnboardingRequest"> | number - otpLastSentAt?: Prisma.DateTimeFilter<"OnboardingRequest"> | Date | string - otpResendCount?: Prisma.IntFilter<"OnboardingRequest"> | number - emailVerifiedAt?: Prisma.DateTimeNullableFilter<"OnboardingRequest"> | Date | string | null - completedAt?: Prisma.DateTimeNullableFilter<"OnboardingRequest"> | Date | string | null - createdAt?: Prisma.DateTimeFilter<"OnboardingRequest"> | Date | string - updatedAt?: Prisma.DateTimeFilter<"OnboardingRequest"> | Date | string -} - -export type OnboardingRequestOrderByWithRelationInput = { - id?: Prisma.SortOrder - fullName?: Prisma.SortOrder - email?: Prisma.SortOrder - otpHash?: Prisma.SortOrder - otpExpiresAt?: Prisma.SortOrder - otpAttempts?: Prisma.SortOrder - otpLastSentAt?: Prisma.SortOrder - otpResendCount?: Prisma.SortOrder - emailVerifiedAt?: Prisma.SortOrderInput | Prisma.SortOrder - completedAt?: Prisma.SortOrderInput | Prisma.SortOrder - createdAt?: Prisma.SortOrder - updatedAt?: Prisma.SortOrder -} - -export type OnboardingRequestWhereUniqueInput = Prisma.AtLeast<{ - id?: string - AND?: Prisma.OnboardingRequestWhereInput | Prisma.OnboardingRequestWhereInput[] - OR?: Prisma.OnboardingRequestWhereInput[] - NOT?: Prisma.OnboardingRequestWhereInput | Prisma.OnboardingRequestWhereInput[] - fullName?: Prisma.StringFilter<"OnboardingRequest"> | string - email?: Prisma.StringFilter<"OnboardingRequest"> | string - otpHash?: Prisma.StringFilter<"OnboardingRequest"> | string - otpExpiresAt?: Prisma.DateTimeFilter<"OnboardingRequest"> | Date | string - otpAttempts?: Prisma.IntFilter<"OnboardingRequest"> | number - otpLastSentAt?: Prisma.DateTimeFilter<"OnboardingRequest"> | Date | string - otpResendCount?: Prisma.IntFilter<"OnboardingRequest"> | number - emailVerifiedAt?: Prisma.DateTimeNullableFilter<"OnboardingRequest"> | Date | string | null - completedAt?: Prisma.DateTimeNullableFilter<"OnboardingRequest"> | Date | string | null - createdAt?: Prisma.DateTimeFilter<"OnboardingRequest"> | Date | string - updatedAt?: Prisma.DateTimeFilter<"OnboardingRequest"> | Date | string -}, "id"> - -export type OnboardingRequestOrderByWithAggregationInput = { - id?: Prisma.SortOrder - fullName?: Prisma.SortOrder - email?: Prisma.SortOrder - otpHash?: Prisma.SortOrder - otpExpiresAt?: Prisma.SortOrder - otpAttempts?: Prisma.SortOrder - otpLastSentAt?: Prisma.SortOrder - otpResendCount?: Prisma.SortOrder - emailVerifiedAt?: Prisma.SortOrderInput | Prisma.SortOrder - completedAt?: Prisma.SortOrderInput | Prisma.SortOrder - createdAt?: Prisma.SortOrder - updatedAt?: Prisma.SortOrder - _count?: Prisma.OnboardingRequestCountOrderByAggregateInput - _avg?: Prisma.OnboardingRequestAvgOrderByAggregateInput - _max?: Prisma.OnboardingRequestMaxOrderByAggregateInput - _min?: Prisma.OnboardingRequestMinOrderByAggregateInput - _sum?: Prisma.OnboardingRequestSumOrderByAggregateInput -} - -export type OnboardingRequestScalarWhereWithAggregatesInput = { - AND?: Prisma.OnboardingRequestScalarWhereWithAggregatesInput | Prisma.OnboardingRequestScalarWhereWithAggregatesInput[] - OR?: Prisma.OnboardingRequestScalarWhereWithAggregatesInput[] - NOT?: Prisma.OnboardingRequestScalarWhereWithAggregatesInput | Prisma.OnboardingRequestScalarWhereWithAggregatesInput[] - id?: Prisma.UuidWithAggregatesFilter<"OnboardingRequest"> | string - fullName?: Prisma.StringWithAggregatesFilter<"OnboardingRequest"> | string - email?: Prisma.StringWithAggregatesFilter<"OnboardingRequest"> | string - otpHash?: Prisma.StringWithAggregatesFilter<"OnboardingRequest"> | string - otpExpiresAt?: Prisma.DateTimeWithAggregatesFilter<"OnboardingRequest"> | Date | string - otpAttempts?: Prisma.IntWithAggregatesFilter<"OnboardingRequest"> | number - otpLastSentAt?: Prisma.DateTimeWithAggregatesFilter<"OnboardingRequest"> | Date | string - otpResendCount?: Prisma.IntWithAggregatesFilter<"OnboardingRequest"> | number - emailVerifiedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"OnboardingRequest"> | Date | string | null - completedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"OnboardingRequest"> | Date | string | null - createdAt?: Prisma.DateTimeWithAggregatesFilter<"OnboardingRequest"> | Date | string - updatedAt?: Prisma.DateTimeWithAggregatesFilter<"OnboardingRequest"> | Date | string -} - -export type OnboardingRequestCreateInput = { - id: string - fullName: string - email: string - otpHash: string - otpExpiresAt: Date | string - otpAttempts?: number - otpLastSentAt: Date | string - otpResendCount?: number - emailVerifiedAt?: Date | string | null - completedAt?: Date | string | null - createdAt?: Date | string - updatedAt?: Date | string -} - -export type OnboardingRequestUncheckedCreateInput = { - id: string - fullName: string - email: string - otpHash: string - otpExpiresAt: Date | string - otpAttempts?: number - otpLastSentAt: Date | string - otpResendCount?: number - emailVerifiedAt?: Date | string | null - completedAt?: Date | string | null - createdAt?: Date | string - updatedAt?: Date | string -} - -export type OnboardingRequestUpdateInput = { - id?: Prisma.StringFieldUpdateOperationsInput | string - fullName?: Prisma.StringFieldUpdateOperationsInput | string - email?: Prisma.StringFieldUpdateOperationsInput | string - otpHash?: Prisma.StringFieldUpdateOperationsInput | string - otpExpiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - otpAttempts?: Prisma.IntFieldUpdateOperationsInput | number - otpLastSentAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - otpResendCount?: Prisma.IntFieldUpdateOperationsInput | number - emailVerifiedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null - completedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null - createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string -} - -export type OnboardingRequestUncheckedUpdateInput = { - id?: Prisma.StringFieldUpdateOperationsInput | string - fullName?: Prisma.StringFieldUpdateOperationsInput | string - email?: Prisma.StringFieldUpdateOperationsInput | string - otpHash?: Prisma.StringFieldUpdateOperationsInput | string - otpExpiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - otpAttempts?: Prisma.IntFieldUpdateOperationsInput | number - otpLastSentAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - otpResendCount?: Prisma.IntFieldUpdateOperationsInput | number - emailVerifiedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null - completedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null - createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string -} - -export type OnboardingRequestCreateManyInput = { - id: string - fullName: string - email: string - otpHash: string - otpExpiresAt: Date | string - otpAttempts?: number - otpLastSentAt: Date | string - otpResendCount?: number - emailVerifiedAt?: Date | string | null - completedAt?: Date | string | null - createdAt?: Date | string - updatedAt?: Date | string -} - -export type OnboardingRequestUpdateManyMutationInput = { - id?: Prisma.StringFieldUpdateOperationsInput | string - fullName?: Prisma.StringFieldUpdateOperationsInput | string - email?: Prisma.StringFieldUpdateOperationsInput | string - otpHash?: Prisma.StringFieldUpdateOperationsInput | string - otpExpiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - otpAttempts?: Prisma.IntFieldUpdateOperationsInput | number - otpLastSentAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - otpResendCount?: Prisma.IntFieldUpdateOperationsInput | number - emailVerifiedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null - completedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null - createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string -} - -export type OnboardingRequestUncheckedUpdateManyInput = { - id?: Prisma.StringFieldUpdateOperationsInput | string - fullName?: Prisma.StringFieldUpdateOperationsInput | string - email?: Prisma.StringFieldUpdateOperationsInput | string - otpHash?: Prisma.StringFieldUpdateOperationsInput | string - otpExpiresAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - otpAttempts?: Prisma.IntFieldUpdateOperationsInput | number - otpLastSentAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - otpResendCount?: Prisma.IntFieldUpdateOperationsInput | number - emailVerifiedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null - completedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null - createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string - updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string -} - -export type OnboardingRequestCountOrderByAggregateInput = { - id?: Prisma.SortOrder - fullName?: Prisma.SortOrder - email?: Prisma.SortOrder - otpHash?: Prisma.SortOrder - otpExpiresAt?: Prisma.SortOrder - otpAttempts?: Prisma.SortOrder - otpLastSentAt?: Prisma.SortOrder - otpResendCount?: Prisma.SortOrder - emailVerifiedAt?: Prisma.SortOrder - completedAt?: Prisma.SortOrder - createdAt?: Prisma.SortOrder - updatedAt?: Prisma.SortOrder -} - -export type OnboardingRequestAvgOrderByAggregateInput = { - otpAttempts?: Prisma.SortOrder - otpResendCount?: Prisma.SortOrder -} - -export type OnboardingRequestMaxOrderByAggregateInput = { - id?: Prisma.SortOrder - fullName?: Prisma.SortOrder - email?: Prisma.SortOrder - otpHash?: Prisma.SortOrder - otpExpiresAt?: Prisma.SortOrder - otpAttempts?: Prisma.SortOrder - otpLastSentAt?: Prisma.SortOrder - otpResendCount?: Prisma.SortOrder - emailVerifiedAt?: Prisma.SortOrder - completedAt?: Prisma.SortOrder - createdAt?: Prisma.SortOrder - updatedAt?: Prisma.SortOrder -} - -export type OnboardingRequestMinOrderByAggregateInput = { - id?: Prisma.SortOrder - fullName?: Prisma.SortOrder - email?: Prisma.SortOrder - otpHash?: Prisma.SortOrder - otpExpiresAt?: Prisma.SortOrder - otpAttempts?: Prisma.SortOrder - otpLastSentAt?: Prisma.SortOrder - otpResendCount?: Prisma.SortOrder - emailVerifiedAt?: Prisma.SortOrder - completedAt?: Prisma.SortOrder - createdAt?: Prisma.SortOrder - updatedAt?: Prisma.SortOrder -} - -export type OnboardingRequestSumOrderByAggregateInput = { - otpAttempts?: Prisma.SortOrder - otpResendCount?: Prisma.SortOrder -} - - - -export type OnboardingRequestSelect = runtime.Types.Extensions.GetSelect<{ - id?: boolean - fullName?: boolean - email?: boolean - otpHash?: boolean - otpExpiresAt?: boolean - otpAttempts?: boolean - otpLastSentAt?: boolean - otpResendCount?: boolean - emailVerifiedAt?: boolean - completedAt?: boolean - createdAt?: boolean - updatedAt?: boolean -}, ExtArgs["result"]["onboardingRequest"]> - -export type OnboardingRequestSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ - id?: boolean - fullName?: boolean - email?: boolean - otpHash?: boolean - otpExpiresAt?: boolean - otpAttempts?: boolean - otpLastSentAt?: boolean - otpResendCount?: boolean - emailVerifiedAt?: boolean - completedAt?: boolean - createdAt?: boolean - updatedAt?: boolean -}, ExtArgs["result"]["onboardingRequest"]> - -export type OnboardingRequestSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ - id?: boolean - fullName?: boolean - email?: boolean - otpHash?: boolean - otpExpiresAt?: boolean - otpAttempts?: boolean - otpLastSentAt?: boolean - otpResendCount?: boolean - emailVerifiedAt?: boolean - completedAt?: boolean - createdAt?: boolean - updatedAt?: boolean -}, ExtArgs["result"]["onboardingRequest"]> - -export type OnboardingRequestSelectScalar = { - id?: boolean - fullName?: boolean - email?: boolean - otpHash?: boolean - otpExpiresAt?: boolean - otpAttempts?: boolean - otpLastSentAt?: boolean - otpResendCount?: boolean - emailVerifiedAt?: boolean - completedAt?: boolean - createdAt?: boolean - updatedAt?: boolean -} - -export type OnboardingRequestOmit = runtime.Types.Extensions.GetOmit<"id" | "fullName" | "email" | "otpHash" | "otpExpiresAt" | "otpAttempts" | "otpLastSentAt" | "otpResendCount" | "emailVerifiedAt" | "completedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["onboardingRequest"]> - -export type $OnboardingRequestPayload = { - name: "OnboardingRequest" - objects: {} - scalars: runtime.Types.Extensions.GetPayloadResult<{ - id: string - fullName: string - email: string - otpHash: string - otpExpiresAt: Date - otpAttempts: number - otpLastSentAt: Date - otpResendCount: number - emailVerifiedAt: Date | null - completedAt: Date | null - createdAt: Date - updatedAt: Date - }, ExtArgs["result"]["onboardingRequest"]> - composites: {} -} - -export type OnboardingRequestGetPayload = runtime.Types.Result.GetResult - -export type OnboardingRequestCountArgs = - Omit & { - select?: OnboardingRequestCountAggregateInputType | true - } - -export interface OnboardingRequestDelegate { - [K: symbol]: { types: Prisma.TypeMap['model']['OnboardingRequest'], meta: { name: 'OnboardingRequest' } } - /** - * Find zero or one OnboardingRequest that matches the filter. - * @param {OnboardingRequestFindUniqueArgs} args - Arguments to find a OnboardingRequest - * @example - * // Get one OnboardingRequest - * const onboardingRequest = await prisma.onboardingRequest.findUnique({ - * where: { - * // ... provide filter here - * } - * }) - */ - findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__OnboardingRequestClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> - - /** - * Find one OnboardingRequest that matches the filter or throw an error with `error.code='P2025'` - * if no matches were found. - * @param {OnboardingRequestFindUniqueOrThrowArgs} args - Arguments to find a OnboardingRequest - * @example - * // Get one OnboardingRequest - * const onboardingRequest = await prisma.onboardingRequest.findUniqueOrThrow({ - * where: { - * // ... provide filter here - * } - * }) - */ - findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__OnboardingRequestClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> - - /** - * Find the first OnboardingRequest that matches the filter. - * Note, that providing `undefined` is treated as the value not being there. - * Read more here: https://pris.ly/d/null-undefined - * @param {OnboardingRequestFindFirstArgs} args - Arguments to find a OnboardingRequest - * @example - * // Get one OnboardingRequest - * const onboardingRequest = await prisma.onboardingRequest.findFirst({ - * where: { - * // ... provide filter here - * } - * }) - */ - findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__OnboardingRequestClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> - - /** - * Find the first OnboardingRequest that matches the filter or - * throw `PrismaKnownClientError` with `P2025` code if no matches were found. - * Note, that providing `undefined` is treated as the value not being there. - * Read more here: https://pris.ly/d/null-undefined - * @param {OnboardingRequestFindFirstOrThrowArgs} args - Arguments to find a OnboardingRequest - * @example - * // Get one OnboardingRequest - * const onboardingRequest = await prisma.onboardingRequest.findFirstOrThrow({ - * where: { - * // ... provide filter here - * } - * }) - */ - findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__OnboardingRequestClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> - - /** - * Find zero or more OnboardingRequests that matches the filter. - * Note, that providing `undefined` is treated as the value not being there. - * Read more here: https://pris.ly/d/null-undefined - * @param {OnboardingRequestFindManyArgs} args - Arguments to filter and select certain fields only. - * @example - * // Get all OnboardingRequests - * const onboardingRequests = await prisma.onboardingRequest.findMany() - * - * // Get first 10 OnboardingRequests - * const onboardingRequests = await prisma.onboardingRequest.findMany({ take: 10 }) - * - * // Only select the `id` - * const onboardingRequestWithIdOnly = await prisma.onboardingRequest.findMany({ select: { id: true } }) - * - */ - findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> - - /** - * Create a OnboardingRequest. - * @param {OnboardingRequestCreateArgs} args - Arguments to create a OnboardingRequest. - * @example - * // Create one OnboardingRequest - * const OnboardingRequest = await prisma.onboardingRequest.create({ - * data: { - * // ... data to create a OnboardingRequest - * } - * }) - * - */ - create(args: Prisma.SelectSubset>): Prisma.Prisma__OnboardingRequestClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> - - /** - * Create many OnboardingRequests. - * @param {OnboardingRequestCreateManyArgs} args - Arguments to create many OnboardingRequests. - * @example - * // Create many OnboardingRequests - * const onboardingRequest = await prisma.onboardingRequest.createMany({ - * data: [ - * // ... provide data here - * ] - * }) - * - */ - createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise - - /** - * Create many OnboardingRequests and returns the data saved in the database. - * @param {OnboardingRequestCreateManyAndReturnArgs} args - Arguments to create many OnboardingRequests. - * @example - * // Create many OnboardingRequests - * const onboardingRequest = await prisma.onboardingRequest.createManyAndReturn({ - * data: [ - * // ... provide data here - * ] - * }) - * - * // Create many OnboardingRequests and only return the `id` - * const onboardingRequestWithIdOnly = await prisma.onboardingRequest.createManyAndReturn({ - * select: { id: true }, - * data: [ - * // ... provide data here - * ] - * }) - * Note, that providing `undefined` is treated as the value not being there. - * Read more here: https://pris.ly/d/null-undefined - * - */ - createManyAndReturn(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "createManyAndReturn", GlobalOmitOptions>> - - /** - * Delete a OnboardingRequest. - * @param {OnboardingRequestDeleteArgs} args - Arguments to delete one OnboardingRequest. - * @example - * // Delete one OnboardingRequest - * const OnboardingRequest = await prisma.onboardingRequest.delete({ - * where: { - * // ... filter to delete one OnboardingRequest - * } - * }) - * - */ - delete(args: Prisma.SelectSubset>): Prisma.Prisma__OnboardingRequestClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> - - /** - * Update one OnboardingRequest. - * @param {OnboardingRequestUpdateArgs} args - Arguments to update one OnboardingRequest. - * @example - * // Update one OnboardingRequest - * const onboardingRequest = await prisma.onboardingRequest.update({ - * where: { - * // ... provide filter here - * }, - * data: { - * // ... provide data here - * } - * }) - * - */ - update(args: Prisma.SelectSubset>): Prisma.Prisma__OnboardingRequestClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> - - /** - * Delete zero or more OnboardingRequests. - * @param {OnboardingRequestDeleteManyArgs} args - Arguments to filter OnboardingRequests to delete. - * @example - * // Delete a few OnboardingRequests - * const { count } = await prisma.onboardingRequest.deleteMany({ - * where: { - * // ... provide filter here - * } - * }) - * - */ - deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise - - /** - * Update zero or more OnboardingRequests. - * Note, that providing `undefined` is treated as the value not being there. - * Read more here: https://pris.ly/d/null-undefined - * @param {OnboardingRequestUpdateManyArgs} args - Arguments to update one or more rows. - * @example - * // Update many OnboardingRequests - * const onboardingRequest = await prisma.onboardingRequest.updateMany({ - * where: { - * // ... provide filter here - * }, - * data: { - * // ... provide data here - * } - * }) - * - */ - updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise - - /** - * Update zero or more OnboardingRequests and returns the data updated in the database. - * @param {OnboardingRequestUpdateManyAndReturnArgs} args - Arguments to update many OnboardingRequests. - * @example - * // Update many OnboardingRequests - * const onboardingRequest = await prisma.onboardingRequest.updateManyAndReturn({ - * where: { - * // ... provide filter here - * }, - * data: [ - * // ... provide data here - * ] - * }) - * - * // Update zero or more OnboardingRequests and only return the `id` - * const onboardingRequestWithIdOnly = await prisma.onboardingRequest.updateManyAndReturn({ - * select: { id: true }, - * where: { - * // ... provide filter here - * }, - * data: [ - * // ... provide data here - * ] - * }) - * Note, that providing `undefined` is treated as the value not being there. - * Read more here: https://pris.ly/d/null-undefined - * - */ - updateManyAndReturn(args: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "updateManyAndReturn", GlobalOmitOptions>> - - /** - * Create or update one OnboardingRequest. - * @param {OnboardingRequestUpsertArgs} args - Arguments to update or create a OnboardingRequest. - * @example - * // Update or create a OnboardingRequest - * const onboardingRequest = await prisma.onboardingRequest.upsert({ - * create: { - * // ... data to create a OnboardingRequest - * }, - * update: { - * // ... in case it already exists, update - * }, - * where: { - * // ... the filter for the OnboardingRequest we want to update - * } - * }) - */ - upsert(args: Prisma.SelectSubset>): Prisma.Prisma__OnboardingRequestClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> - - - /** - * Count the number of OnboardingRequests. - * Note, that providing `undefined` is treated as the value not being there. - * Read more here: https://pris.ly/d/null-undefined - * @param {OnboardingRequestCountArgs} args - Arguments to filter OnboardingRequests to count. - * @example - * // Count the number of OnboardingRequests - * const count = await prisma.onboardingRequest.count({ - * where: { - * // ... the filter for the OnboardingRequests we want to count - * } - * }) - **/ - count( - args?: Prisma.Subset, - ): Prisma.PrismaPromise< - T extends runtime.Types.Utils.Record<'select', any> - ? T['select'] extends true - ? number - : Prisma.GetScalarType - : number - > - - /** - * Allows you to perform aggregations operations on a OnboardingRequest. - * Note, that providing `undefined` is treated as the value not being there. - * Read more here: https://pris.ly/d/null-undefined - * @param {OnboardingRequestAggregateArgs} args - Select which aggregations you would like to apply and on what fields. - * @example - * // Ordered by age ascending - * // Where email contains prisma.io - * // Limited to the 10 users - * const aggregations = await prisma.user.aggregate({ - * _avg: { - * age: true, - * }, - * where: { - * email: { - * contains: "prisma.io", - * }, - * }, - * orderBy: { - * age: "asc", - * }, - * take: 10, - * }) - **/ - aggregate(args: Prisma.Subset): Prisma.PrismaPromise> - - /** - * Group by OnboardingRequest. - * Note, that providing `undefined` is treated as the value not being there. - * Read more here: https://pris.ly/d/null-undefined - * @param {OnboardingRequestGroupByArgs} args - Group by arguments. - * @example - * // Group by city, order by createdAt, get count - * const result = await prisma.user.groupBy({ - * by: ['city', 'createdAt'], - * orderBy: { - * createdAt: true - * }, - * _count: { - * _all: true - * }, - * }) - * - **/ - groupBy< - T extends OnboardingRequestGroupByArgs, - HasSelectOrTake extends Prisma.Or< - Prisma.Extends<'skip', Prisma.Keys>, - Prisma.Extends<'take', Prisma.Keys> - >, - OrderByArg extends Prisma.True extends HasSelectOrTake - ? { orderBy: OnboardingRequestGroupByArgs['orderBy'] } - : { orderBy?: OnboardingRequestGroupByArgs['orderBy'] }, - OrderFields extends Prisma.ExcludeUnderscoreKeys>>, - ByFields extends Prisma.MaybeTupleToUnion, - ByValid extends Prisma.Has, - HavingFields extends Prisma.GetHavingFields, - HavingValid extends Prisma.Has, - ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, - InputErrors extends ByEmpty extends Prisma.True - ? `Error: "by" must not be empty.` - : HavingValid extends Prisma.False - ? { - [P in HavingFields]: P extends ByFields - ? never - : P extends string - ? `Error: Field "${P}" used in "having" needs to be provided in "by".` - : [ - Error, - 'Field ', - P, - ` in "having" needs to be provided in "by"`, - ] - }[HavingFields] - : 'take' extends Prisma.Keys - ? 'orderBy' extends Prisma.Keys - ? ByValid extends Prisma.True - ? {} - : { - [P in OrderFields]: P extends ByFields - ? never - : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` - }[OrderFields] - : 'Error: If you provide "take", you also need to provide "orderBy"' - : 'skip' extends Prisma.Keys - ? 'orderBy' extends Prisma.Keys - ? ByValid extends Prisma.True - ? {} - : { - [P in OrderFields]: P extends ByFields - ? never - : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` - }[OrderFields] - : 'Error: If you provide "skip", you also need to provide "orderBy"' - : ByValid extends Prisma.True - ? {} - : { - [P in OrderFields]: P extends ByFields - ? never - : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` - }[OrderFields] - >(args: Prisma.SubsetIntersection & InputErrors): {} extends InputErrors ? GetOnboardingRequestGroupByPayload : Prisma.PrismaPromise -/** - * Fields of the OnboardingRequest model - */ -readonly fields: OnboardingRequestFieldRefs; -} - -/** - * The delegate class that acts as a "Promise-like" for OnboardingRequest. - * Why is this prefixed with `Prisma__`? - * Because we want to prevent naming conflicts as mentioned in - * https://github.com/prisma/prisma-client-js/issues/707 - */ -export interface Prisma__OnboardingRequestClient extends Prisma.PrismaPromise { - readonly [Symbol.toStringTag]: "PrismaPromise" - /** - * Attaches callbacks for the resolution and/or rejection of the Promise. - * @param onfulfilled The callback to execute when the Promise is resolved. - * @param onrejected The callback to execute when the Promise is rejected. - * @returns A Promise for the completion of which ever callback is executed. - */ - then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise - /** - * Attaches a callback for only the rejection of the Promise. - * @param onrejected The callback to execute when the Promise is rejected. - * @returns A Promise for the completion of the callback. - */ - catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): runtime.Types.Utils.JsPromise - /** - * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The - * resolved value cannot be modified from the callback. - * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). - * @returns A Promise for the completion of the callback. - */ - finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise -} - - - - -/** - * Fields of the OnboardingRequest model - */ -export interface OnboardingRequestFieldRefs { - readonly id: Prisma.FieldRef<"OnboardingRequest", 'String'> - readonly fullName: Prisma.FieldRef<"OnboardingRequest", 'String'> - readonly email: Prisma.FieldRef<"OnboardingRequest", 'String'> - readonly otpHash: Prisma.FieldRef<"OnboardingRequest", 'String'> - readonly otpExpiresAt: Prisma.FieldRef<"OnboardingRequest", 'DateTime'> - readonly otpAttempts: Prisma.FieldRef<"OnboardingRequest", 'Int'> - readonly otpLastSentAt: Prisma.FieldRef<"OnboardingRequest", 'DateTime'> - readonly otpResendCount: Prisma.FieldRef<"OnboardingRequest", 'Int'> - readonly emailVerifiedAt: Prisma.FieldRef<"OnboardingRequest", 'DateTime'> - readonly completedAt: Prisma.FieldRef<"OnboardingRequest", 'DateTime'> - readonly createdAt: Prisma.FieldRef<"OnboardingRequest", 'DateTime'> - readonly updatedAt: Prisma.FieldRef<"OnboardingRequest", 'DateTime'> -} - - -// Custom InputTypes -/** - * OnboardingRequest findUnique - */ -export type OnboardingRequestFindUniqueArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelect | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * Filter, which OnboardingRequest to fetch. - */ - where: Prisma.OnboardingRequestWhereUniqueInput -} - -/** - * OnboardingRequest findUniqueOrThrow - */ -export type OnboardingRequestFindUniqueOrThrowArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelect | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * Filter, which OnboardingRequest to fetch. - */ - where: Prisma.OnboardingRequestWhereUniqueInput -} - -/** - * OnboardingRequest findFirst - */ -export type OnboardingRequestFindFirstArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelect | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * Filter, which OnboardingRequest to fetch. - */ - where?: Prisma.OnboardingRequestWhereInput - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} - * - * Determine the order of OnboardingRequests to fetch. - */ - orderBy?: Prisma.OnboardingRequestOrderByWithRelationInput | Prisma.OnboardingRequestOrderByWithRelationInput[] - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} - * - * Sets the position for searching for OnboardingRequests. - */ - cursor?: Prisma.OnboardingRequestWhereUniqueInput - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} - * - * Take `±n` OnboardingRequests from the position of the cursor. - */ - take?: number - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} - * - * Skip the first `n` OnboardingRequests. - */ - skip?: number - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} - * - * Filter by unique combinations of OnboardingRequests. - */ - distinct?: Prisma.OnboardingRequestScalarFieldEnum | Prisma.OnboardingRequestScalarFieldEnum[] -} - -/** - * OnboardingRequest findFirstOrThrow - */ -export type OnboardingRequestFindFirstOrThrowArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelect | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * Filter, which OnboardingRequest to fetch. - */ - where?: Prisma.OnboardingRequestWhereInput - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} - * - * Determine the order of OnboardingRequests to fetch. - */ - orderBy?: Prisma.OnboardingRequestOrderByWithRelationInput | Prisma.OnboardingRequestOrderByWithRelationInput[] - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} - * - * Sets the position for searching for OnboardingRequests. - */ - cursor?: Prisma.OnboardingRequestWhereUniqueInput - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} - * - * Take `±n` OnboardingRequests from the position of the cursor. - */ - take?: number - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} - * - * Skip the first `n` OnboardingRequests. - */ - skip?: number - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} - * - * Filter by unique combinations of OnboardingRequests. - */ - distinct?: Prisma.OnboardingRequestScalarFieldEnum | Prisma.OnboardingRequestScalarFieldEnum[] -} - -/** - * OnboardingRequest findMany - */ -export type OnboardingRequestFindManyArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelect | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * Filter, which OnboardingRequests to fetch. - */ - where?: Prisma.OnboardingRequestWhereInput - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} - * - * Determine the order of OnboardingRequests to fetch. - */ - orderBy?: Prisma.OnboardingRequestOrderByWithRelationInput | Prisma.OnboardingRequestOrderByWithRelationInput[] - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} - * - * Sets the position for listing OnboardingRequests. - */ - cursor?: Prisma.OnboardingRequestWhereUniqueInput - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} - * - * Take `±n` OnboardingRequests from the position of the cursor. - */ - take?: number - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} - * - * Skip the first `n` OnboardingRequests. - */ - skip?: number - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} - * - * Filter by unique combinations of OnboardingRequests. - */ - distinct?: Prisma.OnboardingRequestScalarFieldEnum | Prisma.OnboardingRequestScalarFieldEnum[] -} - -/** - * OnboardingRequest create - */ -export type OnboardingRequestCreateArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelect | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * The data needed to create a OnboardingRequest. - */ - data: Prisma.XOR -} - -/** - * OnboardingRequest createMany - */ -export type OnboardingRequestCreateManyArgs = { - /** - * The data used to create many OnboardingRequests. - */ - data: Prisma.OnboardingRequestCreateManyInput | Prisma.OnboardingRequestCreateManyInput[] - skipDuplicates?: boolean -} - -/** - * OnboardingRequest createManyAndReturn - */ -export type OnboardingRequestCreateManyAndReturnArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelectCreateManyAndReturn | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * The data used to create many OnboardingRequests. - */ - data: Prisma.OnboardingRequestCreateManyInput | Prisma.OnboardingRequestCreateManyInput[] - skipDuplicates?: boolean -} - -/** - * OnboardingRequest update - */ -export type OnboardingRequestUpdateArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelect | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * The data needed to update a OnboardingRequest. - */ - data: Prisma.XOR - /** - * Choose, which OnboardingRequest to update. - */ - where: Prisma.OnboardingRequestWhereUniqueInput -} - -/** - * OnboardingRequest updateMany - */ -export type OnboardingRequestUpdateManyArgs = { - /** - * The data used to update OnboardingRequests. - */ - data: Prisma.XOR - /** - * Filter which OnboardingRequests to update - */ - where?: Prisma.OnboardingRequestWhereInput - /** - * Limit how many OnboardingRequests to update. - */ - limit?: number -} - -/** - * OnboardingRequest updateManyAndReturn - */ -export type OnboardingRequestUpdateManyAndReturnArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelectUpdateManyAndReturn | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * The data used to update OnboardingRequests. - */ - data: Prisma.XOR - /** - * Filter which OnboardingRequests to update - */ - where?: Prisma.OnboardingRequestWhereInput - /** - * Limit how many OnboardingRequests to update. - */ - limit?: number -} - -/** - * OnboardingRequest upsert - */ -export type OnboardingRequestUpsertArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelect | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * The filter to search for the OnboardingRequest to update in case it exists. - */ - where: Prisma.OnboardingRequestWhereUniqueInput - /** - * In case the OnboardingRequest found by the `where` argument doesn't exist, create a new OnboardingRequest with this data. - */ - create: Prisma.XOR - /** - * In case the OnboardingRequest was found with the provided `where` argument, update it with this data. - */ - update: Prisma.XOR -} - -/** - * OnboardingRequest delete - */ -export type OnboardingRequestDeleteArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelect | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null - /** - * Filter which OnboardingRequest to delete. - */ - where: Prisma.OnboardingRequestWhereUniqueInput -} - -/** - * OnboardingRequest deleteMany - */ -export type OnboardingRequestDeleteManyArgs = { - /** - * Filter which OnboardingRequests to delete - */ - where?: Prisma.OnboardingRequestWhereInput - /** - * Limit how many OnboardingRequests to delete. - */ - limit?: number -} - -/** - * OnboardingRequest without action - */ -export type OnboardingRequestDefaultArgs = { - /** - * Select specific fields to fetch from the OnboardingRequest - */ - select?: Prisma.OnboardingRequestSelect | null - /** - * Omit specific fields from the OnboardingRequest - */ - omit?: Prisma.OnboardingRequestOmit | null -} diff --git a/apps/backend/src/modules/admin-booking/handlers/create-admin-booking.handler.ts b/apps/backend/src/modules/admin-booking/handlers/create-admin-booking.handler.ts index eadfa81..be12a81 100644 --- a/apps/backend/src/modules/admin-booking/handlers/create-admin-booking.handler.ts +++ b/apps/backend/src/modules/admin-booking/handlers/create-admin-booking.handler.ts @@ -2,6 +2,7 @@ import { AdminBookingServiceError, createAdminBooking, } from '@/modules/admin-booking/services/admin-booking.service'; +import { sendBookingConfirmation } from '@/services/booking-email.service'; import type { AppContext } from '@/types/hono'; import type { CreateAdminBookingInput } from '@repo/api-contract'; @@ -14,6 +15,20 @@ export async function createAdminBookingHandler(c: AppContext) { try { const booking = await createAdminBooking(user.id, complexId, payload); + + void sendBookingConfirmation({ + bookingCode: booking.bookingCode, + complexName: booking.complexName, + date: booking.date, + startTime: booking.startTime, + endTime: booking.endTime, + courtName: booking.courtName, + sportName: booking.sport.name, + customerName: booking.customerName, + customerEmail: booking.customerEmail, + price: booking.price, + }); + return c.json(booking, 201); } catch (error) { if (error instanceof AdminBookingServiceError) { diff --git a/apps/backend/src/modules/admin-booking/handlers/update-admin-booking-status.handler.ts b/apps/backend/src/modules/admin-booking/handlers/update-admin-booking-status.handler.ts index deca159..047ed4e 100644 --- a/apps/backend/src/modules/admin-booking/handlers/update-admin-booking-status.handler.ts +++ b/apps/backend/src/modules/admin-booking/handlers/update-admin-booking-status.handler.ts @@ -2,6 +2,7 @@ import { AdminBookingServiceError, updateAdminBookingStatus, } from '@/modules/admin-booking/services/admin-booking.service'; +import { sendBookingCancelled, sendBookingNoShow } from '@/services/booking-email.service'; import type { AppContext } from '@/types/hono'; import type { UpdateAdminBookingStatusInput } from '@repo/api-contract'; @@ -14,6 +15,33 @@ export async function updateAdminBookingStatusHandler(c: AppContext) { try { const booking = await updateAdminBookingStatus(user.id, id, payload); + + if (payload.status === 'CANCELLED') { + void sendBookingCancelled({ + bookingCode: booking.bookingCode, + complexName: booking.complexName, + date: booking.date, + startTime: booking.startTime, + endTime: booking.endTime, + courtName: booking.courtName, + sportName: booking.sport.name, + customerName: booking.customerName, + customerEmail: booking.customerEmail, + }); + } else if (payload.status === 'NOSHOW') { + void sendBookingNoShow({ + bookingCode: booking.bookingCode, + complexName: booking.complexName, + date: booking.date, + startTime: booking.startTime, + endTime: booking.endTime, + courtName: booking.courtName, + sportName: booking.sport.name, + customerName: booking.customerName, + customerEmail: booking.customerEmail, + }); + } + return c.json(booking); } catch (error) { if (error instanceof AdminBookingServiceError) { diff --git a/apps/backend/src/modules/admin-booking/services/admin-booking.service.ts b/apps/backend/src/modules/admin-booking/services/admin-booking.service.ts index 5070514..151117d 100644 --- a/apps/backend/src/modules/admin-booking/services/admin-booking.service.ts +++ b/apps/backend/src/modules/admin-booking/services/admin-booking.service.ts @@ -2,6 +2,7 @@ import { randomInt } from 'node:crypto'; import { CourtBookingStatus } from '@/generated/prisma/enums'; import { db } from '@/lib/prisma'; import { evaluatePlanUsage, parsePlanRules } from '@/modules/plan/services/plan-rules.service'; +import type { DayOfWeek } from '@repo/api-contract'; import type { AdminBooking, CreateAdminBookingInput, @@ -156,6 +157,40 @@ async function ensureComplexAccess(complexId: string, userId: string) { return complexUser.complex; } +function resolvePrice( + court: { + basePrice: unknown; + priceRules: Array<{ + dayOfWeek: string | null; + startTime: string | null; + endTime: string | null; + price: unknown; + }>; + }, + dayOfWeek: string, + startTime: string, + endTime: string +): number { + const slotStart = toMinutes(startTime); + const slotEnd = toMinutes(endTime); + + const matchingRules = court.priceRules + .filter((rule) => { + if (rule.dayOfWeek && rule.dayOfWeek !== dayOfWeek) return false; + if (!rule.startTime || !rule.endTime) return true; + return slotStart >= toMinutes(rule.startTime) && slotEnd <= toMinutes(rule.endTime); + }) + .sort((first, second) => { + const firstSpecificity = + (first.dayOfWeek ? 2 : 0) + (first.startTime && first.endTime ? 1 : 0); + const secondSpecificity = + (second.dayOfWeek ? 2 : 0) + (second.startTime && second.endTime ? 1 : 0); + return secondSpecificity - firstSpecificity; + }); + + return Number(matchingRules[0]?.price ?? court.basePrice); +} + function mapBookingResponse(booking: { id: string; bookingCode: string; @@ -164,6 +199,7 @@ function mapBookingResponse(booking: { endTime: string; customerName: string; customerPhone: string; + customerEmail: string | null; status: 'CONFIRMED' | 'CANCELLED' | 'COMPLETED' | 'NOSHOW'; createdAt: Date; updatedAt: Date; @@ -180,6 +216,7 @@ function mapBookingResponse(booking: { slug: string; }; }; + price?: number; }): AdminBooking { return { id: booking.id, @@ -198,6 +235,8 @@ function mapBookingResponse(booking: { endTime: booking.endTime, customerName: booking.customerName, customerPhone: booking.customerPhone, + customerEmail: booking.customerEmail ?? undefined, + price: booking.price ?? 0, status: booking.status, createdAt: booking.createdAt.toISOString(), updatedAt: booking.updatedAt.toISOString(), @@ -292,6 +331,10 @@ export async function createAdminBooking( slug: true, }, }, + priceRules: { + where: { isActive: true }, + orderBy: [{ dayOfWeek: 'asc' }, { startTime: 'asc' }], + }, }, }); @@ -381,6 +424,7 @@ export async function createAdminBooking( endTime: selectedSlot.endTime, customerName: input.customerName.trim(), customerPhone: input.customerPhone.trim(), + customerEmail: input.customerEmail?.trim() || null, status: 'CONFIRMED', }, include: { @@ -407,7 +451,9 @@ export async function createAdminBooking( }); }); - return mapBookingResponse(booking); + const price = resolvePrice(court, dayOfWeek, selectedSlot.startTime, selectedSlot.endTime); + + return mapBookingResponse({ ...booking, price }); } catch (error) { if (error instanceof AdminBookingServiceError) { throw error; @@ -521,6 +567,7 @@ export async function updateAdminBookingStatus( endTime: booking.endTime, customerName: booking.customerName, customerPhone: booking.customerPhone, + customerEmail: booking.customerEmail, previousStatus: booking.status, newStatus: input.status, changedAt: new Date(), diff --git a/apps/backend/src/modules/public-booking/handlers/create-public-booking.handler.ts b/apps/backend/src/modules/public-booking/handlers/create-public-booking.handler.ts index ac1012a..23370d3 100644 --- a/apps/backend/src/modules/public-booking/handlers/create-public-booking.handler.ts +++ b/apps/backend/src/modules/public-booking/handlers/create-public-booking.handler.ts @@ -3,6 +3,7 @@ import { PublicBookingServiceError, createPublicBooking, } from '@/modules/public-booking/services/public-booking.service'; +import { sendBookingConfirmation } from '@/services/booking-email.service'; import type { AppContext } from '@/types/hono'; import type { CreatePublicBookingInput } from '@repo/api-contract'; @@ -30,6 +31,19 @@ export async function createPublicBookingHandler(c: AppContext) { }) ); + void sendBookingConfirmation({ + bookingCode: booking.bookingCode, + complexName: booking.complexName, + date: booking.date, + startTime: booking.startTime, + endTime: booking.endTime, + courtName: booking.courtName, + sportName: booking.sport.name, + customerName: booking.customerName, + customerEmail: booking.customerEmail, + price: booking.price, + }); + return c.json(booking, 201); } catch (error) { if (error instanceof PublicBookingServiceError) { diff --git a/apps/backend/src/modules/public-booking/services/public-booking.service.ts b/apps/backend/src/modules/public-booking/services/public-booking.service.ts index 5c9361b..08cc85f 100644 --- a/apps/backend/src/modules/public-booking/services/public-booking.service.ts +++ b/apps/backend/src/modules/public-booking/services/public-booking.service.ts @@ -276,6 +276,8 @@ function mapBookingResponse(input: { endTime: string; customerName: string; customerPhone: string; + customerEmail: string | null; + price: number; status: 'CONFIRMED' | 'CANCELLED' | 'COMPLETED' | 'NOSHOW'; court: { id: string; @@ -304,7 +306,9 @@ function mapBookingResponse(input: { endTime: input.endTime, customerName: input.customerName, customerPhone: input.customerPhone, + customerEmail: input.customerEmail ?? undefined, status: input.status, + price: input.price, createdAt: input.createdAt.toISOString(), }; } @@ -325,6 +329,7 @@ export async function getPublicBookingConfirmation(complexSlug: string, bookingC bookingDate: true, startTime: true, endTime: true, + customerEmail: true, status: true, createdAt: true, court: { @@ -381,6 +386,7 @@ export async function getPublicBookingConfirmation(complexSlug: string, bookingC slug: booking.court.sport.slug, }, status: booking.status, + customerEmail: booking.customerEmail ?? undefined, createdAt: booking.createdAt.toISOString(), }; } @@ -625,6 +631,7 @@ export async function createPublicBooking(complexSlug: string, input: CreatePubl endTime: selectedSlot.endTime, customerName: input.customerName.trim(), customerPhone: input.customerPhone.trim(), + customerEmail: input.customerEmail?.trim() || null, status: 'CONFIRMED', }, select: { @@ -636,11 +643,14 @@ export async function createPublicBooking(complexSlug: string, input: CreatePubl endTime: true, customerName: true, customerPhone: true, + customerEmail: true, status: true, }, }); }); + const price = resolveSlotPrice(selectedCourt, dayOfWeek, selectedSlot); + return mapBookingResponse({ bookingId: booking.id, bookingCode: booking.bookingCode, @@ -650,6 +660,8 @@ export async function createPublicBooking(complexSlug: string, input: CreatePubl endTime: booking.endTime, customerName: booking.customerName, customerPhone: booking.customerPhone, + customerEmail: booking.customerEmail, + price, status: booking.status, court: { id: selectedCourt.id, diff --git a/apps/backend/src/services/booking-email.service.ts b/apps/backend/src/services/booking-email.service.ts new file mode 100644 index 0000000..799547f --- /dev/null +++ b/apps/backend/src/services/booking-email.service.ts @@ -0,0 +1,86 @@ +import { + bookingCancelledHtml, + bookingConfirmationHtml, + bookingNoShowHtml, +} from '@/emails/booking-confirmation'; +import { sendMail } from '@/lib/mailer'; + +type BookingEmailInput = { + bookingCode: string; + complexName: string; + date: string; + startTime: string; + endTime: string; + courtName: string; + sportName: string; + customerName: string; + customerEmail?: string; + price?: number; +}; + +export async function sendBookingConfirmation(data: BookingEmailInput) { + if (!data.customerEmail) return; + + const html = bookingConfirmationHtml({ + bookingCode: data.bookingCode, + complexName: data.complexName, + date: data.date, + startTime: data.startTime, + endTime: data.endTime, + courtName: data.courtName, + sportName: data.sportName, + customerName: data.customerName, + price: data.price, + }); + + await sendMail({ + to: data.customerEmail, + subject: `Reserva confirmada en ${data.complexName} | Playzer`, + html, + text: `Reserva confirmada en ${data.complexName}. Codigo: ${data.bookingCode}. Cancha: ${data.courtName}. Fecha: ${data.date}. Horario: ${data.startTime} - ${data.endTime}.`, + }); +} + +export async function sendBookingCancelled(data: BookingEmailInput) { + if (!data.customerEmail) return; + + const html = bookingCancelledHtml({ + bookingCode: data.bookingCode, + complexName: data.complexName, + date: data.date, + startTime: data.startTime, + endTime: data.endTime, + courtName: data.courtName, + sportName: data.sportName, + customerName: data.customerName, + }); + + await sendMail({ + to: data.customerEmail, + subject: `Reserva cancelada en ${data.complexName} | Playzer`, + html, + text: `Reserva cancelada en ${data.complexName}. Codigo: ${data.bookingCode}. Fecha: ${data.date}. Horario: ${data.startTime} - ${data.endTime}.`, + }); +} + +export async function sendBookingNoShow(data: BookingEmailInput) { + if (!data.customerEmail) return; + + const html = bookingNoShowHtml({ + bookingCode: data.bookingCode, + complexName: data.complexName, + date: data.date, + startTime: data.startTime, + endTime: data.endTime, + courtName: data.courtName, + sportName: data.sportName, + customerName: data.customerName, + }); + + await sendMail({ + to: data.customerEmail, + subject: `Reserva no concretada en ${data.complexName} | Playzer`, + html, + text: `Reserva no concretada en ${data.complexName}. Codigo: ${data.bookingCode}. Fecha: ${data.date}. Horario: ${data.startTime} - ${data.endTime}.`, + }); +} diff --git a/apps/frontend/src/features/booking/booking-provider.tsx b/apps/frontend/src/features/booking/booking-provider.tsx index 357d57f..f5b1464 100644 --- a/apps/frontend/src/features/booking/booking-provider.tsx +++ b/apps/frontend/src/features/booking/booking-provider.tsx @@ -41,6 +41,7 @@ interface CreateManualBookingPayload { startTime: string; customerName: string; customerPhone: string; + customerEmail?: string; } interface BookingContextValue { @@ -315,6 +316,7 @@ export function BookingProvider({ children, complex }: BookingProviderProps) { startTime: payload.startTime, customerName: payload.customerName, customerPhone: payload.customerPhone, + customerEmail: payload.customerEmail || undefined, }), onSuccess: async () => { await queryClient.invalidateQueries({ queryKey: ['admin-bookings', complex.id] }); diff --git a/apps/frontend/src/features/booking/components/booking-create-dialog.tsx b/apps/frontend/src/features/booking/components/booking-create-dialog.tsx index a108c34..9091066 100644 --- a/apps/frontend/src/features/booking/components/booking-create-dialog.tsx +++ b/apps/frontend/src/features/booking/components/booking-create-dialog.tsx @@ -42,6 +42,7 @@ const bookingFormSchema = z.object({ .trim() .min(6, 'Ingresa un telefono válido.') .max(30, 'El telefono no puede superar los 30 caracteres.'), + customerEmail: z.string().email('Ingresá un email válido.').optional().or(z.literal('')), }); type BookingForm = z.infer; @@ -76,6 +77,7 @@ export function BookingCreateDialog() { defaultValues: { customerName: '', customerPhone: '', + customerEmail: '', }, }); @@ -154,6 +156,7 @@ export function BookingCreateDialog() { startTime, customerName: values.customerName, customerPhone: values.customerPhone, + customerEmail: values.customerEmail || undefined, }); }; @@ -271,6 +274,23 @@ export function BookingCreateDialog() { + + + Email (opcional) + + +

+ Se enviará la confirmación de la reserva por email. +

+ +
+ {createBookingError &&

{createBookingError}

} diff --git a/apps/frontend/src/features/public-booking/public-booking-page.tsx b/apps/frontend/src/features/public-booking/public-booking-page.tsx index e7b6238..43ede17 100644 --- a/apps/frontend/src/features/public-booking/public-booking-page.tsx +++ b/apps/frontend/src/features/public-booking/public-booking-page.tsx @@ -62,6 +62,7 @@ const bookingFormSchema = z.object({ .trim() .min(6, 'Ingresá un teléfono válido.') .max(30, 'El teléfono no puede superar los 30 caracteres.'), + customerEmail: z.string().email('Ingresá un email válido.').optional().or(z.literal('')), }); type BookingFormValues = z.infer; @@ -1294,6 +1295,24 @@ function SelectedSlotCard(props: BookingShellProps & { compact?: boolean }) { + + + Email (opcional) + + +

+ Te enviaremos la confirmación de la reserva por email. +

+ +
+ {createError &&

{createError}

} {navigationError &&

{navigationError}

} @@ -1409,6 +1428,7 @@ export function PublicBookingPage({ complexSlug }: PublicBookingPageProps) { defaultValues: { customerName: '', customerPhone: '', + customerEmail: '', }, }); @@ -1425,6 +1445,7 @@ export function PublicBookingPage({ complexSlug }: PublicBookingPageProps) { startTime: selectedSlot.startTime, customerName: payload.customerName, customerPhone: payload.customerPhone, + customerEmail: payload.customerEmail || undefined, }); }, }); diff --git a/packages/api-contract/src/admin-booking.ts b/packages/api-contract/src/admin-booking.ts index a28229c..89ed3a7 100644 --- a/packages/api-contract/src/admin-booking.ts +++ b/packages/api-contract/src/admin-booking.ts @@ -25,6 +25,8 @@ export const adminBookingSchema = z.object({ endTime: z.string().regex(TIME_REGEX), customerName: z.string(), customerPhone: z.string(), + customerEmail: z.string().optional(), + price: z.number().nonnegative(), status: bookingStatusSchema, createdAt: z.string().datetime(), updatedAt: z.string().datetime(), @@ -52,6 +54,11 @@ export const createAdminBookingSchema = z.object({ .trim() .min(6, 'El telefono debe tener al menos 6 caracteres.') .max(30, 'El telefono no puede superar los 30 caracteres.'), + customerEmail: z + .string() + .email('El email ingresado no es valido.') + .optional() + .or(z.literal('')), }) export const updateAdminBookingStatusSchema = z.object({ diff --git a/packages/api-contract/src/public-booking.ts b/packages/api-contract/src/public-booking.ts index 5d75f3f..923744f 100644 --- a/packages/api-contract/src/public-booking.ts +++ b/packages/api-contract/src/public-booking.ts @@ -57,6 +57,11 @@ export const createPublicBookingSchema = z.object({ .trim() .min(6, 'El telefono debe tener al menos 6 caracteres.') .max(30, 'El telefono no puede superar los 30 caracteres.'), + customerEmail: z + .string() + .email('El email ingresado no es valido.') + .optional() + .or(z.literal('')), }) export const publicBookingSchema = z.object({ @@ -73,7 +78,9 @@ export const publicBookingSchema = z.object({ endTime: z.string().regex(TIME_REGEX), customerName: z.string(), customerPhone: z.string(), + customerEmail: z.string().optional(), status: z.enum(['CONFIRMED', 'CANCELLED', 'COMPLETED']), + price: z.number().nonnegative(), createdAt: z.string().datetime(), }) @@ -89,6 +96,7 @@ export const publicBookingConfirmationSchema = z.object({ courtName: z.string(), sport: publicBookingSportSchema, status: z.enum(['CONFIRMED', 'CANCELLED', 'COMPLETED']), + customerEmail: z.string().optional(), createdAt: z.string().datetime(), })