/* !!! This is code generated by Prisma. Do not edit directly. !!! */ /* eslint-disable */ // biome-ignore-all lint: generated file // @ts-nocheck /* * This file exports the `Booking` 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 Booking * Booking 1-1 ke TripParticipant. Lifecycle ikut peserta: * - join → Booking PENDING (menunggu approve organizer) * - organizer confirm → AWAITING_PAY (paid trip) atau PAID (free trip) * - peserta + organizer rampungkan pembayaran → PAID * - cancel/reject → CANCELLED * `amount` adalah snapshot harga saat booking dibuat — protect dari perubahan trip.price. */ export type BookingModel = runtime.Types.Result.DefaultSelection export type AggregateBooking = { _count: BookingCountAggregateOutputType | null _avg: BookingAvgAggregateOutputType | null _sum: BookingSumAggregateOutputType | null _min: BookingMinAggregateOutputType | null _max: BookingMaxAggregateOutputType | null } export type BookingAvgAggregateOutputType = { amount: number | null } export type BookingSumAggregateOutputType = { amount: number | null } export type BookingMinAggregateOutputType = { id: string | null tripId: string | null userId: string | null participantId: string | null amount: number | null currency: string | null status: $Enums.BookingStatus | null createdAt: Date | null updatedAt: Date | null } export type BookingMaxAggregateOutputType = { id: string | null tripId: string | null userId: string | null participantId: string | null amount: number | null currency: string | null status: $Enums.BookingStatus | null createdAt: Date | null updatedAt: Date | null } export type BookingCountAggregateOutputType = { id: number tripId: number userId: number participantId: number amount: number currency: number status: number createdAt: number updatedAt: number _all: number } export type BookingAvgAggregateInputType = { amount?: true } export type BookingSumAggregateInputType = { amount?: true } export type BookingMinAggregateInputType = { id?: true tripId?: true userId?: true participantId?: true amount?: true currency?: true status?: true createdAt?: true updatedAt?: true } export type BookingMaxAggregateInputType = { id?: true tripId?: true userId?: true participantId?: true amount?: true currency?: true status?: true createdAt?: true updatedAt?: true } export type BookingCountAggregateInputType = { id?: true tripId?: true userId?: true participantId?: true amount?: true currency?: true status?: true createdAt?: true updatedAt?: true _all?: true } export type BookingAggregateArgs = { /** * Filter which Booking to aggregate. */ where?: Prisma.BookingWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Bookings to fetch. */ orderBy?: Prisma.BookingOrderByWithRelationInput | Prisma.BookingOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the start position */ cursor?: Prisma.BookingWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Bookings 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` Bookings. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Count returned Bookings **/ _count?: true | BookingCountAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to average **/ _avg?: BookingAvgAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to sum **/ _sum?: BookingSumAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the minimum value **/ _min?: BookingMinAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * * Select which fields to find the maximum value **/ _max?: BookingMaxAggregateInputType } export type GetBookingAggregateType = { [P in keyof T & keyof AggregateBooking]: P extends '_count' | 'count' ? T[P] extends true ? number : Prisma.GetScalarType : Prisma.GetScalarType } export type BookingGroupByArgs = { where?: Prisma.BookingWhereInput orderBy?: Prisma.BookingOrderByWithAggregationInput | Prisma.BookingOrderByWithAggregationInput[] by: Prisma.BookingScalarFieldEnum[] | Prisma.BookingScalarFieldEnum having?: Prisma.BookingScalarWhereWithAggregatesInput take?: number skip?: number _count?: BookingCountAggregateInputType | true _avg?: BookingAvgAggregateInputType _sum?: BookingSumAggregateInputType _min?: BookingMinAggregateInputType _max?: BookingMaxAggregateInputType } export type BookingGroupByOutputType = { id: string tripId: string userId: string participantId: string amount: number currency: string status: $Enums.BookingStatus createdAt: Date updatedAt: Date _count: BookingCountAggregateOutputType | null _avg: BookingAvgAggregateOutputType | null _sum: BookingSumAggregateOutputType | null _min: BookingMinAggregateOutputType | null _max: BookingMaxAggregateOutputType | null } export type GetBookingGroupByPayload = Prisma.PrismaPromise< Array< Prisma.PickEnumerable & { [P in ((keyof T) & (keyof BookingGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : Prisma.GetScalarType : Prisma.GetScalarType } > > export type BookingWhereInput = { AND?: Prisma.BookingWhereInput | Prisma.BookingWhereInput[] OR?: Prisma.BookingWhereInput[] NOT?: Prisma.BookingWhereInput | Prisma.BookingWhereInput[] id?: Prisma.StringFilter<"Booking"> | string tripId?: Prisma.StringFilter<"Booking"> | string userId?: Prisma.StringFilter<"Booking"> | string participantId?: Prisma.StringFilter<"Booking"> | string amount?: Prisma.IntFilter<"Booking"> | number currency?: Prisma.StringFilter<"Booking"> | string status?: Prisma.EnumBookingStatusFilter<"Booking"> | $Enums.BookingStatus createdAt?: Prisma.DateTimeFilter<"Booking"> | Date | string updatedAt?: Prisma.DateTimeFilter<"Booking"> | Date | string trip?: Prisma.XOR user?: Prisma.XOR participant?: Prisma.XOR payments?: Prisma.PaymentListRelationFilter } export type BookingOrderByWithRelationInput = { id?: Prisma.SortOrder tripId?: Prisma.SortOrder userId?: Prisma.SortOrder participantId?: Prisma.SortOrder amount?: Prisma.SortOrder currency?: Prisma.SortOrder status?: Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder trip?: Prisma.TripOrderByWithRelationInput user?: Prisma.UserOrderByWithRelationInput participant?: Prisma.TripParticipantOrderByWithRelationInput payments?: Prisma.PaymentOrderByRelationAggregateInput } export type BookingWhereUniqueInput = Prisma.AtLeast<{ id?: string participantId?: string tripId_userId?: Prisma.BookingTripIdUserIdCompoundUniqueInput AND?: Prisma.BookingWhereInput | Prisma.BookingWhereInput[] OR?: Prisma.BookingWhereInput[] NOT?: Prisma.BookingWhereInput | Prisma.BookingWhereInput[] tripId?: Prisma.StringFilter<"Booking"> | string userId?: Prisma.StringFilter<"Booking"> | string amount?: Prisma.IntFilter<"Booking"> | number currency?: Prisma.StringFilter<"Booking"> | string status?: Prisma.EnumBookingStatusFilter<"Booking"> | $Enums.BookingStatus createdAt?: Prisma.DateTimeFilter<"Booking"> | Date | string updatedAt?: Prisma.DateTimeFilter<"Booking"> | Date | string trip?: Prisma.XOR user?: Prisma.XOR participant?: Prisma.XOR payments?: Prisma.PaymentListRelationFilter }, "id" | "participantId" | "tripId_userId"> export type BookingOrderByWithAggregationInput = { id?: Prisma.SortOrder tripId?: Prisma.SortOrder userId?: Prisma.SortOrder participantId?: Prisma.SortOrder amount?: Prisma.SortOrder currency?: Prisma.SortOrder status?: Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder _count?: Prisma.BookingCountOrderByAggregateInput _avg?: Prisma.BookingAvgOrderByAggregateInput _max?: Prisma.BookingMaxOrderByAggregateInput _min?: Prisma.BookingMinOrderByAggregateInput _sum?: Prisma.BookingSumOrderByAggregateInput } export type BookingScalarWhereWithAggregatesInput = { AND?: Prisma.BookingScalarWhereWithAggregatesInput | Prisma.BookingScalarWhereWithAggregatesInput[] OR?: Prisma.BookingScalarWhereWithAggregatesInput[] NOT?: Prisma.BookingScalarWhereWithAggregatesInput | Prisma.BookingScalarWhereWithAggregatesInput[] id?: Prisma.StringWithAggregatesFilter<"Booking"> | string tripId?: Prisma.StringWithAggregatesFilter<"Booking"> | string userId?: Prisma.StringWithAggregatesFilter<"Booking"> | string participantId?: Prisma.StringWithAggregatesFilter<"Booking"> | string amount?: Prisma.IntWithAggregatesFilter<"Booking"> | number currency?: Prisma.StringWithAggregatesFilter<"Booking"> | string status?: Prisma.EnumBookingStatusWithAggregatesFilter<"Booking"> | $Enums.BookingStatus createdAt?: Prisma.DateTimeWithAggregatesFilter<"Booking"> | Date | string updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Booking"> | Date | string } export type BookingCreateInput = { id?: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string trip: Prisma.TripCreateNestedOneWithoutBookingsInput user: Prisma.UserCreateNestedOneWithoutBookingsInput participant: Prisma.TripParticipantCreateNestedOneWithoutBookingInput payments?: Prisma.PaymentCreateNestedManyWithoutBookingInput } export type BookingUncheckedCreateInput = { id?: string tripId: string userId: string participantId: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string payments?: Prisma.PaymentUncheckedCreateNestedManyWithoutBookingInput } export type BookingUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string trip?: Prisma.TripUpdateOneRequiredWithoutBookingsNestedInput user?: Prisma.UserUpdateOneRequiredWithoutBookingsNestedInput participant?: Prisma.TripParticipantUpdateOneRequiredWithoutBookingNestedInput payments?: Prisma.PaymentUpdateManyWithoutBookingNestedInput } export type BookingUncheckedUpdateInput = { id?: Prisma.StringFieldUpdateOperationsInput | string tripId?: Prisma.StringFieldUpdateOperationsInput | string userId?: Prisma.StringFieldUpdateOperationsInput | string participantId?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string payments?: Prisma.PaymentUncheckedUpdateManyWithoutBookingNestedInput } export type BookingCreateManyInput = { id?: string tripId: string userId: string participantId: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string } export type BookingUpdateManyMutationInput = { id?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } export type BookingUncheckedUpdateManyInput = { id?: Prisma.StringFieldUpdateOperationsInput | string tripId?: Prisma.StringFieldUpdateOperationsInput | string userId?: Prisma.StringFieldUpdateOperationsInput | string participantId?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } export type BookingListRelationFilter = { every?: Prisma.BookingWhereInput some?: Prisma.BookingWhereInput none?: Prisma.BookingWhereInput } export type BookingOrderByRelationAggregateInput = { _count?: Prisma.SortOrder } export type BookingNullableScalarRelationFilter = { is?: Prisma.BookingWhereInput | null isNot?: Prisma.BookingWhereInput | null } export type BookingTripIdUserIdCompoundUniqueInput = { tripId: string userId: string } export type BookingCountOrderByAggregateInput = { id?: Prisma.SortOrder tripId?: Prisma.SortOrder userId?: Prisma.SortOrder participantId?: Prisma.SortOrder amount?: Prisma.SortOrder currency?: Prisma.SortOrder status?: Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder } export type BookingAvgOrderByAggregateInput = { amount?: Prisma.SortOrder } export type BookingMaxOrderByAggregateInput = { id?: Prisma.SortOrder tripId?: Prisma.SortOrder userId?: Prisma.SortOrder participantId?: Prisma.SortOrder amount?: Prisma.SortOrder currency?: Prisma.SortOrder status?: Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder } export type BookingMinOrderByAggregateInput = { id?: Prisma.SortOrder tripId?: Prisma.SortOrder userId?: Prisma.SortOrder participantId?: Prisma.SortOrder amount?: Prisma.SortOrder currency?: Prisma.SortOrder status?: Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder } export type BookingSumOrderByAggregateInput = { amount?: Prisma.SortOrder } export type BookingScalarRelationFilter = { is?: Prisma.BookingWhereInput isNot?: Prisma.BookingWhereInput } export type BookingCreateNestedManyWithoutUserInput = { create?: Prisma.XOR | Prisma.BookingCreateWithoutUserInput[] | Prisma.BookingUncheckedCreateWithoutUserInput[] connectOrCreate?: Prisma.BookingCreateOrConnectWithoutUserInput | Prisma.BookingCreateOrConnectWithoutUserInput[] createMany?: Prisma.BookingCreateManyUserInputEnvelope connect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] } export type BookingUncheckedCreateNestedManyWithoutUserInput = { create?: Prisma.XOR | Prisma.BookingCreateWithoutUserInput[] | Prisma.BookingUncheckedCreateWithoutUserInput[] connectOrCreate?: Prisma.BookingCreateOrConnectWithoutUserInput | Prisma.BookingCreateOrConnectWithoutUserInput[] createMany?: Prisma.BookingCreateManyUserInputEnvelope connect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] } export type BookingUpdateManyWithoutUserNestedInput = { create?: Prisma.XOR | Prisma.BookingCreateWithoutUserInput[] | Prisma.BookingUncheckedCreateWithoutUserInput[] connectOrCreate?: Prisma.BookingCreateOrConnectWithoutUserInput | Prisma.BookingCreateOrConnectWithoutUserInput[] upsert?: Prisma.BookingUpsertWithWhereUniqueWithoutUserInput | Prisma.BookingUpsertWithWhereUniqueWithoutUserInput[] createMany?: Prisma.BookingCreateManyUserInputEnvelope set?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] disconnect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] delete?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] connect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] update?: Prisma.BookingUpdateWithWhereUniqueWithoutUserInput | Prisma.BookingUpdateWithWhereUniqueWithoutUserInput[] updateMany?: Prisma.BookingUpdateManyWithWhereWithoutUserInput | Prisma.BookingUpdateManyWithWhereWithoutUserInput[] deleteMany?: Prisma.BookingScalarWhereInput | Prisma.BookingScalarWhereInput[] } export type BookingUncheckedUpdateManyWithoutUserNestedInput = { create?: Prisma.XOR | Prisma.BookingCreateWithoutUserInput[] | Prisma.BookingUncheckedCreateWithoutUserInput[] connectOrCreate?: Prisma.BookingCreateOrConnectWithoutUserInput | Prisma.BookingCreateOrConnectWithoutUserInput[] upsert?: Prisma.BookingUpsertWithWhereUniqueWithoutUserInput | Prisma.BookingUpsertWithWhereUniqueWithoutUserInput[] createMany?: Prisma.BookingCreateManyUserInputEnvelope set?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] disconnect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] delete?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] connect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] update?: Prisma.BookingUpdateWithWhereUniqueWithoutUserInput | Prisma.BookingUpdateWithWhereUniqueWithoutUserInput[] updateMany?: Prisma.BookingUpdateManyWithWhereWithoutUserInput | Prisma.BookingUpdateManyWithWhereWithoutUserInput[] deleteMany?: Prisma.BookingScalarWhereInput | Prisma.BookingScalarWhereInput[] } export type BookingCreateNestedManyWithoutTripInput = { create?: Prisma.XOR | Prisma.BookingCreateWithoutTripInput[] | Prisma.BookingUncheckedCreateWithoutTripInput[] connectOrCreate?: Prisma.BookingCreateOrConnectWithoutTripInput | Prisma.BookingCreateOrConnectWithoutTripInput[] createMany?: Prisma.BookingCreateManyTripInputEnvelope connect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] } export type BookingUncheckedCreateNestedManyWithoutTripInput = { create?: Prisma.XOR | Prisma.BookingCreateWithoutTripInput[] | Prisma.BookingUncheckedCreateWithoutTripInput[] connectOrCreate?: Prisma.BookingCreateOrConnectWithoutTripInput | Prisma.BookingCreateOrConnectWithoutTripInput[] createMany?: Prisma.BookingCreateManyTripInputEnvelope connect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] } export type BookingUpdateManyWithoutTripNestedInput = { create?: Prisma.XOR | Prisma.BookingCreateWithoutTripInput[] | Prisma.BookingUncheckedCreateWithoutTripInput[] connectOrCreate?: Prisma.BookingCreateOrConnectWithoutTripInput | Prisma.BookingCreateOrConnectWithoutTripInput[] upsert?: Prisma.BookingUpsertWithWhereUniqueWithoutTripInput | Prisma.BookingUpsertWithWhereUniqueWithoutTripInput[] createMany?: Prisma.BookingCreateManyTripInputEnvelope set?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] disconnect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] delete?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] connect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] update?: Prisma.BookingUpdateWithWhereUniqueWithoutTripInput | Prisma.BookingUpdateWithWhereUniqueWithoutTripInput[] updateMany?: Prisma.BookingUpdateManyWithWhereWithoutTripInput | Prisma.BookingUpdateManyWithWhereWithoutTripInput[] deleteMany?: Prisma.BookingScalarWhereInput | Prisma.BookingScalarWhereInput[] } export type BookingUncheckedUpdateManyWithoutTripNestedInput = { create?: Prisma.XOR | Prisma.BookingCreateWithoutTripInput[] | Prisma.BookingUncheckedCreateWithoutTripInput[] connectOrCreate?: Prisma.BookingCreateOrConnectWithoutTripInput | Prisma.BookingCreateOrConnectWithoutTripInput[] upsert?: Prisma.BookingUpsertWithWhereUniqueWithoutTripInput | Prisma.BookingUpsertWithWhereUniqueWithoutTripInput[] createMany?: Prisma.BookingCreateManyTripInputEnvelope set?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] disconnect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] delete?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] connect?: Prisma.BookingWhereUniqueInput | Prisma.BookingWhereUniqueInput[] update?: Prisma.BookingUpdateWithWhereUniqueWithoutTripInput | Prisma.BookingUpdateWithWhereUniqueWithoutTripInput[] updateMany?: Prisma.BookingUpdateManyWithWhereWithoutTripInput | Prisma.BookingUpdateManyWithWhereWithoutTripInput[] deleteMany?: Prisma.BookingScalarWhereInput | Prisma.BookingScalarWhereInput[] } export type BookingCreateNestedOneWithoutParticipantInput = { create?: Prisma.XOR connectOrCreate?: Prisma.BookingCreateOrConnectWithoutParticipantInput connect?: Prisma.BookingWhereUniqueInput } export type BookingUncheckedCreateNestedOneWithoutParticipantInput = { create?: Prisma.XOR connectOrCreate?: Prisma.BookingCreateOrConnectWithoutParticipantInput connect?: Prisma.BookingWhereUniqueInput } export type BookingUpdateOneWithoutParticipantNestedInput = { create?: Prisma.XOR connectOrCreate?: Prisma.BookingCreateOrConnectWithoutParticipantInput upsert?: Prisma.BookingUpsertWithoutParticipantInput disconnect?: Prisma.BookingWhereInput | boolean delete?: Prisma.BookingWhereInput | boolean connect?: Prisma.BookingWhereUniqueInput update?: Prisma.XOR, Prisma.BookingUncheckedUpdateWithoutParticipantInput> } export type BookingUncheckedUpdateOneWithoutParticipantNestedInput = { create?: Prisma.XOR connectOrCreate?: Prisma.BookingCreateOrConnectWithoutParticipantInput upsert?: Prisma.BookingUpsertWithoutParticipantInput disconnect?: Prisma.BookingWhereInput | boolean delete?: Prisma.BookingWhereInput | boolean connect?: Prisma.BookingWhereUniqueInput update?: Prisma.XOR, Prisma.BookingUncheckedUpdateWithoutParticipantInput> } export type EnumBookingStatusFieldUpdateOperationsInput = { set?: $Enums.BookingStatus } export type BookingCreateNestedOneWithoutPaymentsInput = { create?: Prisma.XOR connectOrCreate?: Prisma.BookingCreateOrConnectWithoutPaymentsInput connect?: Prisma.BookingWhereUniqueInput } export type BookingUpdateOneRequiredWithoutPaymentsNestedInput = { create?: Prisma.XOR connectOrCreate?: Prisma.BookingCreateOrConnectWithoutPaymentsInput upsert?: Prisma.BookingUpsertWithoutPaymentsInput connect?: Prisma.BookingWhereUniqueInput update?: Prisma.XOR, Prisma.BookingUncheckedUpdateWithoutPaymentsInput> } export type BookingCreateWithoutUserInput = { id?: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string trip: Prisma.TripCreateNestedOneWithoutBookingsInput participant: Prisma.TripParticipantCreateNestedOneWithoutBookingInput payments?: Prisma.PaymentCreateNestedManyWithoutBookingInput } export type BookingUncheckedCreateWithoutUserInput = { id?: string tripId: string participantId: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string payments?: Prisma.PaymentUncheckedCreateNestedManyWithoutBookingInput } export type BookingCreateOrConnectWithoutUserInput = { where: Prisma.BookingWhereUniqueInput create: Prisma.XOR } export type BookingCreateManyUserInputEnvelope = { data: Prisma.BookingCreateManyUserInput | Prisma.BookingCreateManyUserInput[] skipDuplicates?: boolean } export type BookingUpsertWithWhereUniqueWithoutUserInput = { where: Prisma.BookingWhereUniqueInput update: Prisma.XOR create: Prisma.XOR } export type BookingUpdateWithWhereUniqueWithoutUserInput = { where: Prisma.BookingWhereUniqueInput data: Prisma.XOR } export type BookingUpdateManyWithWhereWithoutUserInput = { where: Prisma.BookingScalarWhereInput data: Prisma.XOR } export type BookingScalarWhereInput = { AND?: Prisma.BookingScalarWhereInput | Prisma.BookingScalarWhereInput[] OR?: Prisma.BookingScalarWhereInput[] NOT?: Prisma.BookingScalarWhereInput | Prisma.BookingScalarWhereInput[] id?: Prisma.StringFilter<"Booking"> | string tripId?: Prisma.StringFilter<"Booking"> | string userId?: Prisma.StringFilter<"Booking"> | string participantId?: Prisma.StringFilter<"Booking"> | string amount?: Prisma.IntFilter<"Booking"> | number currency?: Prisma.StringFilter<"Booking"> | string status?: Prisma.EnumBookingStatusFilter<"Booking"> | $Enums.BookingStatus createdAt?: Prisma.DateTimeFilter<"Booking"> | Date | string updatedAt?: Prisma.DateTimeFilter<"Booking"> | Date | string } export type BookingCreateWithoutTripInput = { id?: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string user: Prisma.UserCreateNestedOneWithoutBookingsInput participant: Prisma.TripParticipantCreateNestedOneWithoutBookingInput payments?: Prisma.PaymentCreateNestedManyWithoutBookingInput } export type BookingUncheckedCreateWithoutTripInput = { id?: string userId: string participantId: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string payments?: Prisma.PaymentUncheckedCreateNestedManyWithoutBookingInput } export type BookingCreateOrConnectWithoutTripInput = { where: Prisma.BookingWhereUniqueInput create: Prisma.XOR } export type BookingCreateManyTripInputEnvelope = { data: Prisma.BookingCreateManyTripInput | Prisma.BookingCreateManyTripInput[] skipDuplicates?: boolean } export type BookingUpsertWithWhereUniqueWithoutTripInput = { where: Prisma.BookingWhereUniqueInput update: Prisma.XOR create: Prisma.XOR } export type BookingUpdateWithWhereUniqueWithoutTripInput = { where: Prisma.BookingWhereUniqueInput data: Prisma.XOR } export type BookingUpdateManyWithWhereWithoutTripInput = { where: Prisma.BookingScalarWhereInput data: Prisma.XOR } export type BookingCreateWithoutParticipantInput = { id?: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string trip: Prisma.TripCreateNestedOneWithoutBookingsInput user: Prisma.UserCreateNestedOneWithoutBookingsInput payments?: Prisma.PaymentCreateNestedManyWithoutBookingInput } export type BookingUncheckedCreateWithoutParticipantInput = { id?: string tripId: string userId: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string payments?: Prisma.PaymentUncheckedCreateNestedManyWithoutBookingInput } export type BookingCreateOrConnectWithoutParticipantInput = { where: Prisma.BookingWhereUniqueInput create: Prisma.XOR } export type BookingUpsertWithoutParticipantInput = { update: Prisma.XOR create: Prisma.XOR where?: Prisma.BookingWhereInput } export type BookingUpdateToOneWithWhereWithoutParticipantInput = { where?: Prisma.BookingWhereInput data: Prisma.XOR } export type BookingUpdateWithoutParticipantInput = { id?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string trip?: Prisma.TripUpdateOneRequiredWithoutBookingsNestedInput user?: Prisma.UserUpdateOneRequiredWithoutBookingsNestedInput payments?: Prisma.PaymentUpdateManyWithoutBookingNestedInput } export type BookingUncheckedUpdateWithoutParticipantInput = { id?: Prisma.StringFieldUpdateOperationsInput | string tripId?: Prisma.StringFieldUpdateOperationsInput | string userId?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string payments?: Prisma.PaymentUncheckedUpdateManyWithoutBookingNestedInput } export type BookingCreateWithoutPaymentsInput = { id?: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string trip: Prisma.TripCreateNestedOneWithoutBookingsInput user: Prisma.UserCreateNestedOneWithoutBookingsInput participant: Prisma.TripParticipantCreateNestedOneWithoutBookingInput } export type BookingUncheckedCreateWithoutPaymentsInput = { id?: string tripId: string userId: string participantId: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string } export type BookingCreateOrConnectWithoutPaymentsInput = { where: Prisma.BookingWhereUniqueInput create: Prisma.XOR } export type BookingUpsertWithoutPaymentsInput = { update: Prisma.XOR create: Prisma.XOR where?: Prisma.BookingWhereInput } export type BookingUpdateToOneWithWhereWithoutPaymentsInput = { where?: Prisma.BookingWhereInput data: Prisma.XOR } export type BookingUpdateWithoutPaymentsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string trip?: Prisma.TripUpdateOneRequiredWithoutBookingsNestedInput user?: Prisma.UserUpdateOneRequiredWithoutBookingsNestedInput participant?: Prisma.TripParticipantUpdateOneRequiredWithoutBookingNestedInput } export type BookingUncheckedUpdateWithoutPaymentsInput = { id?: Prisma.StringFieldUpdateOperationsInput | string tripId?: Prisma.StringFieldUpdateOperationsInput | string userId?: Prisma.StringFieldUpdateOperationsInput | string participantId?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } export type BookingCreateManyUserInput = { id?: string tripId: string participantId: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string } export type BookingUpdateWithoutUserInput = { id?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string trip?: Prisma.TripUpdateOneRequiredWithoutBookingsNestedInput participant?: Prisma.TripParticipantUpdateOneRequiredWithoutBookingNestedInput payments?: Prisma.PaymentUpdateManyWithoutBookingNestedInput } export type BookingUncheckedUpdateWithoutUserInput = { id?: Prisma.StringFieldUpdateOperationsInput | string tripId?: Prisma.StringFieldUpdateOperationsInput | string participantId?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string payments?: Prisma.PaymentUncheckedUpdateManyWithoutBookingNestedInput } export type BookingUncheckedUpdateManyWithoutUserInput = { id?: Prisma.StringFieldUpdateOperationsInput | string tripId?: Prisma.StringFieldUpdateOperationsInput | string participantId?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } export type BookingCreateManyTripInput = { id?: string userId: string participantId: string amount: number currency?: string status?: $Enums.BookingStatus createdAt?: Date | string updatedAt?: Date | string } export type BookingUpdateWithoutTripInput = { id?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string user?: Prisma.UserUpdateOneRequiredWithoutBookingsNestedInput participant?: Prisma.TripParticipantUpdateOneRequiredWithoutBookingNestedInput payments?: Prisma.PaymentUpdateManyWithoutBookingNestedInput } export type BookingUncheckedUpdateWithoutTripInput = { id?: Prisma.StringFieldUpdateOperationsInput | string userId?: Prisma.StringFieldUpdateOperationsInput | string participantId?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string payments?: Prisma.PaymentUncheckedUpdateManyWithoutBookingNestedInput } export type BookingUncheckedUpdateManyWithoutTripInput = { id?: Prisma.StringFieldUpdateOperationsInput | string userId?: Prisma.StringFieldUpdateOperationsInput | string participantId?: Prisma.StringFieldUpdateOperationsInput | string amount?: Prisma.IntFieldUpdateOperationsInput | number currency?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumBookingStatusFieldUpdateOperationsInput | $Enums.BookingStatus createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } /** * Count Type BookingCountOutputType */ export type BookingCountOutputType = { payments: number } export type BookingCountOutputTypeSelect = { payments?: boolean | BookingCountOutputTypeCountPaymentsArgs } /** * BookingCountOutputType without action */ export type BookingCountOutputTypeDefaultArgs = { /** * Select specific fields to fetch from the BookingCountOutputType */ select?: Prisma.BookingCountOutputTypeSelect | null } /** * BookingCountOutputType without action */ export type BookingCountOutputTypeCountPaymentsArgs = { where?: Prisma.PaymentWhereInput } export type BookingSelect = runtime.Types.Extensions.GetSelect<{ id?: boolean tripId?: boolean userId?: boolean participantId?: boolean amount?: boolean currency?: boolean status?: boolean createdAt?: boolean updatedAt?: boolean trip?: boolean | Prisma.TripDefaultArgs user?: boolean | Prisma.UserDefaultArgs participant?: boolean | Prisma.TripParticipantDefaultArgs payments?: boolean | Prisma.Booking$paymentsArgs _count?: boolean | Prisma.BookingCountOutputTypeDefaultArgs }, ExtArgs["result"]["booking"]> export type BookingSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ id?: boolean tripId?: boolean userId?: boolean participantId?: boolean amount?: boolean currency?: boolean status?: boolean createdAt?: boolean updatedAt?: boolean trip?: boolean | Prisma.TripDefaultArgs user?: boolean | Prisma.UserDefaultArgs participant?: boolean | Prisma.TripParticipantDefaultArgs }, ExtArgs["result"]["booking"]> export type BookingSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ id?: boolean tripId?: boolean userId?: boolean participantId?: boolean amount?: boolean currency?: boolean status?: boolean createdAt?: boolean updatedAt?: boolean trip?: boolean | Prisma.TripDefaultArgs user?: boolean | Prisma.UserDefaultArgs participant?: boolean | Prisma.TripParticipantDefaultArgs }, ExtArgs["result"]["booking"]> export type BookingSelectScalar = { id?: boolean tripId?: boolean userId?: boolean participantId?: boolean amount?: boolean currency?: boolean status?: boolean createdAt?: boolean updatedAt?: boolean } export type BookingOmit = runtime.Types.Extensions.GetOmit<"id" | "tripId" | "userId" | "participantId" | "amount" | "currency" | "status" | "createdAt" | "updatedAt", ExtArgs["result"]["booking"]> export type BookingInclude = { trip?: boolean | Prisma.TripDefaultArgs user?: boolean | Prisma.UserDefaultArgs participant?: boolean | Prisma.TripParticipantDefaultArgs payments?: boolean | Prisma.Booking$paymentsArgs _count?: boolean | Prisma.BookingCountOutputTypeDefaultArgs } export type BookingIncludeCreateManyAndReturn = { trip?: boolean | Prisma.TripDefaultArgs user?: boolean | Prisma.UserDefaultArgs participant?: boolean | Prisma.TripParticipantDefaultArgs } export type BookingIncludeUpdateManyAndReturn = { trip?: boolean | Prisma.TripDefaultArgs user?: boolean | Prisma.UserDefaultArgs participant?: boolean | Prisma.TripParticipantDefaultArgs } export type $BookingPayload = { name: "Booking" objects: { trip: Prisma.$TripPayload user: Prisma.$UserPayload participant: Prisma.$TripParticipantPayload payments: Prisma.$PaymentPayload[] } scalars: runtime.Types.Extensions.GetPayloadResult<{ id: string tripId: string userId: string participantId: string amount: number currency: string status: $Enums.BookingStatus createdAt: Date updatedAt: Date }, ExtArgs["result"]["booking"]> composites: {} } export type BookingGetPayload = runtime.Types.Result.GetResult export type BookingCountArgs = Omit & { select?: BookingCountAggregateInputType | true } export interface BookingDelegate { [K: symbol]: { types: Prisma.TypeMap['model']['Booking'], meta: { name: 'Booking' } } /** * Find zero or one Booking that matches the filter. * @param {BookingFindUniqueArgs} args - Arguments to find a Booking * @example * // Get one Booking * const booking = await prisma.booking.findUnique({ * where: { * // ... provide filter here * } * }) */ findUnique(args: Prisma.SelectSubset>): Prisma.Prisma__BookingClient, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find one Booking that matches the filter or throw an error with `error.code='P2025'` * if no matches were found. * @param {BookingFindUniqueOrThrowArgs} args - Arguments to find a Booking * @example * // Get one Booking * const booking = await prisma.booking.findUniqueOrThrow({ * where: { * // ... provide filter here * } * }) */ findUniqueOrThrow(args: Prisma.SelectSubset>): Prisma.Prisma__BookingClient, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find the first Booking 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 {BookingFindFirstArgs} args - Arguments to find a Booking * @example * // Get one Booking * const booking = await prisma.booking.findFirst({ * where: { * // ... provide filter here * } * }) */ findFirst(args?: Prisma.SelectSubset>): Prisma.Prisma__BookingClient, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions> /** * Find the first Booking 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 {BookingFindFirstOrThrowArgs} args - Arguments to find a Booking * @example * // Get one Booking * const booking = await prisma.booking.findFirstOrThrow({ * where: { * // ... provide filter here * } * }) */ findFirstOrThrow(args?: Prisma.SelectSubset>): Prisma.Prisma__BookingClient, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Find zero or more Bookings 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 {BookingFindManyArgs} args - Arguments to filter and select certain fields only. * @example * // Get all Bookings * const bookings = await prisma.booking.findMany() * * // Get first 10 Bookings * const bookings = await prisma.booking.findMany({ take: 10 }) * * // Only select the `id` * const bookingWithIdOnly = await prisma.booking.findMany({ select: { id: true } }) * */ findMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions>> /** * Create a Booking. * @param {BookingCreateArgs} args - Arguments to create a Booking. * @example * // Create one Booking * const Booking = await prisma.booking.create({ * data: { * // ... data to create a Booking * } * }) * */ create(args: Prisma.SelectSubset>): Prisma.Prisma__BookingClient, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Create many Bookings. * @param {BookingCreateManyArgs} args - Arguments to create many Bookings. * @example * // Create many Bookings * const booking = await prisma.booking.createMany({ * data: [ * // ... provide data here * ] * }) * */ createMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise /** * Create many Bookings and returns the data saved in the database. * @param {BookingCreateManyAndReturnArgs} args - Arguments to create many Bookings. * @example * // Create many Bookings * const booking = await prisma.booking.createManyAndReturn({ * data: [ * // ... provide data here * ] * }) * * // Create many Bookings and only return the `id` * const bookingWithIdOnly = await prisma.booking.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 Booking. * @param {BookingDeleteArgs} args - Arguments to delete one Booking. * @example * // Delete one Booking * const Booking = await prisma.booking.delete({ * where: { * // ... filter to delete one Booking * } * }) * */ delete(args: Prisma.SelectSubset>): Prisma.Prisma__BookingClient, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Update one Booking. * @param {BookingUpdateArgs} args - Arguments to update one Booking. * @example * // Update one Booking * const booking = await prisma.booking.update({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ update(args: Prisma.SelectSubset>): Prisma.Prisma__BookingClient, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Delete zero or more Bookings. * @param {BookingDeleteManyArgs} args - Arguments to filter Bookings to delete. * @example * // Delete a few Bookings * const { count } = await prisma.booking.deleteMany({ * where: { * // ... provide filter here * } * }) * */ deleteMany(args?: Prisma.SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Bookings. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {BookingUpdateManyArgs} args - Arguments to update one or more rows. * @example * // Update many Bookings * const booking = await prisma.booking.updateMany({ * where: { * // ... provide filter here * }, * data: { * // ... provide data here * } * }) * */ updateMany(args: Prisma.SelectSubset>): Prisma.PrismaPromise /** * Update zero or more Bookings and returns the data updated in the database. * @param {BookingUpdateManyAndReturnArgs} args - Arguments to update many Bookings. * @example * // Update many Bookings * const booking = await prisma.booking.updateManyAndReturn({ * where: { * // ... provide filter here * }, * data: [ * // ... provide data here * ] * }) * * // Update zero or more Bookings and only return the `id` * const bookingWithIdOnly = await prisma.booking.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 Booking. * @param {BookingUpsertArgs} args - Arguments to update or create a Booking. * @example * // Update or create a Booking * const booking = await prisma.booking.upsert({ * create: { * // ... data to create a Booking * }, * update: { * // ... in case it already exists, update * }, * where: { * // ... the filter for the Booking we want to update * } * }) */ upsert(args: Prisma.SelectSubset>): Prisma.Prisma__BookingClient, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions> /** * Count the number of Bookings. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {BookingCountArgs} args - Arguments to filter Bookings to count. * @example * // Count the number of Bookings * const count = await prisma.booking.count({ * where: { * // ... the filter for the Bookings 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 Booking. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {BookingAggregateArgs} 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 Booking. * Note, that providing `undefined` is treated as the value not being there. * Read more here: https://pris.ly/d/null-undefined * @param {BookingGroupByArgs} 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 BookingGroupByArgs, HasSelectOrTake extends Prisma.Or< Prisma.Extends<'skip', Prisma.Keys>, Prisma.Extends<'take', Prisma.Keys> >, OrderByArg extends Prisma.True extends HasSelectOrTake ? { orderBy: BookingGroupByArgs['orderBy'] } : { orderBy?: BookingGroupByArgs['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 ? GetBookingGroupByPayload : Prisma.PrismaPromise /** * Fields of the Booking model */ readonly fields: BookingFieldRefs; } /** * The delegate class that acts as a "Promise-like" for Booking. * 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__BookingClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" trip = {}>(args?: Prisma.Subset>): Prisma.Prisma__TripClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> participant = {}>(args?: Prisma.Subset>): Prisma.Prisma__TripParticipantClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> payments = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> /** * 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 Booking model */ export interface BookingFieldRefs { readonly id: Prisma.FieldRef<"Booking", 'String'> readonly tripId: Prisma.FieldRef<"Booking", 'String'> readonly userId: Prisma.FieldRef<"Booking", 'String'> readonly participantId: Prisma.FieldRef<"Booking", 'String'> readonly amount: Prisma.FieldRef<"Booking", 'Int'> readonly currency: Prisma.FieldRef<"Booking", 'String'> readonly status: Prisma.FieldRef<"Booking", 'BookingStatus'> readonly createdAt: Prisma.FieldRef<"Booking", 'DateTime'> readonly updatedAt: Prisma.FieldRef<"Booking", 'DateTime'> } // Custom InputTypes /** * Booking findUnique */ export type BookingFindUniqueArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelect | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingInclude | null /** * Filter, which Booking to fetch. */ where: Prisma.BookingWhereUniqueInput } /** * Booking findUniqueOrThrow */ export type BookingFindUniqueOrThrowArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelect | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingInclude | null /** * Filter, which Booking to fetch. */ where: Prisma.BookingWhereUniqueInput } /** * Booking findFirst */ export type BookingFindFirstArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelect | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingInclude | null /** * Filter, which Booking to fetch. */ where?: Prisma.BookingWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Bookings to fetch. */ orderBy?: Prisma.BookingOrderByWithRelationInput | Prisma.BookingOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Bookings. */ cursor?: Prisma.BookingWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Bookings 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` Bookings. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Bookings. */ distinct?: Prisma.BookingScalarFieldEnum | Prisma.BookingScalarFieldEnum[] } /** * Booking findFirstOrThrow */ export type BookingFindFirstOrThrowArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelect | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingInclude | null /** * Filter, which Booking to fetch. */ where?: Prisma.BookingWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Bookings to fetch. */ orderBy?: Prisma.BookingOrderByWithRelationInput | Prisma.BookingOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for searching for Bookings. */ cursor?: Prisma.BookingWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Bookings 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` Bookings. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Bookings. */ distinct?: Prisma.BookingScalarFieldEnum | Prisma.BookingScalarFieldEnum[] } /** * Booking findMany */ export type BookingFindManyArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelect | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingInclude | null /** * Filter, which Bookings to fetch. */ where?: Prisma.BookingWhereInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} * * Determine the order of Bookings to fetch. */ orderBy?: Prisma.BookingOrderByWithRelationInput | Prisma.BookingOrderByWithRelationInput[] /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} * * Sets the position for listing Bookings. */ cursor?: Prisma.BookingWhereUniqueInput /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} * * Take `±n` Bookings 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` Bookings. */ skip?: number /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} * * Filter by unique combinations of Bookings. */ distinct?: Prisma.BookingScalarFieldEnum | Prisma.BookingScalarFieldEnum[] } /** * Booking create */ export type BookingCreateArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelect | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingInclude | null /** * The data needed to create a Booking. */ data: Prisma.XOR } /** * Booking createMany */ export type BookingCreateManyArgs = { /** * The data used to create many Bookings. */ data: Prisma.BookingCreateManyInput | Prisma.BookingCreateManyInput[] skipDuplicates?: boolean } /** * Booking createManyAndReturn */ export type BookingCreateManyAndReturnArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelectCreateManyAndReturn | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * The data used to create many Bookings. */ data: Prisma.BookingCreateManyInput | Prisma.BookingCreateManyInput[] skipDuplicates?: boolean /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingIncludeCreateManyAndReturn | null } /** * Booking update */ export type BookingUpdateArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelect | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingInclude | null /** * The data needed to update a Booking. */ data: Prisma.XOR /** * Choose, which Booking to update. */ where: Prisma.BookingWhereUniqueInput } /** * Booking updateMany */ export type BookingUpdateManyArgs = { /** * The data used to update Bookings. */ data: Prisma.XOR /** * Filter which Bookings to update */ where?: Prisma.BookingWhereInput /** * Limit how many Bookings to update. */ limit?: number } /** * Booking updateManyAndReturn */ export type BookingUpdateManyAndReturnArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelectUpdateManyAndReturn | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * The data used to update Bookings. */ data: Prisma.XOR /** * Filter which Bookings to update */ where?: Prisma.BookingWhereInput /** * Limit how many Bookings to update. */ limit?: number /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingIncludeUpdateManyAndReturn | null } /** * Booking upsert */ export type BookingUpsertArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelect | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingInclude | null /** * The filter to search for the Booking to update in case it exists. */ where: Prisma.BookingWhereUniqueInput /** * In case the Booking found by the `where` argument doesn't exist, create a new Booking with this data. */ create: Prisma.XOR /** * In case the Booking was found with the provided `where` argument, update it with this data. */ update: Prisma.XOR } /** * Booking delete */ export type BookingDeleteArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelect | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingInclude | null /** * Filter which Booking to delete. */ where: Prisma.BookingWhereUniqueInput } /** * Booking deleteMany */ export type BookingDeleteManyArgs = { /** * Filter which Bookings to delete */ where?: Prisma.BookingWhereInput /** * Limit how many Bookings to delete. */ limit?: number } /** * Booking.payments */ export type Booking$paymentsArgs = { /** * Select specific fields to fetch from the Payment */ select?: Prisma.PaymentSelect | null /** * Omit specific fields from the Payment */ omit?: Prisma.PaymentOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.PaymentInclude | null where?: Prisma.PaymentWhereInput orderBy?: Prisma.PaymentOrderByWithRelationInput | Prisma.PaymentOrderByWithRelationInput[] cursor?: Prisma.PaymentWhereUniqueInput take?: number skip?: number distinct?: Prisma.PaymentScalarFieldEnum | Prisma.PaymentScalarFieldEnum[] } /** * Booking without action */ export type BookingDefaultArgs = { /** * Select specific fields to fetch from the Booking */ select?: Prisma.BookingSelect | null /** * Omit specific fields from the Booking */ omit?: Prisma.BookingOmit | null /** * Choose, which related nodes to fetch as well */ include?: Prisma.BookingInclude | null }