add payment, trust badge, handle race condition, fix booking schema

This commit is contained in:
arifal
2026-04-20 23:57:31 +07:00
parent ba5f64ae0e
commit fcdca34460
33 changed files with 1781 additions and 138 deletions
+89 -1
View File
@@ -28,6 +28,8 @@ export type TripParticipantMinAggregateOutputType = {
id: string | null
status: $Enums.ParticipantStatus | null
createdAt: Date | null
markedPaidAt: Date | null
paymentConfirmedAt: Date | null
tripId: string | null
userId: string | null
}
@@ -36,6 +38,8 @@ export type TripParticipantMaxAggregateOutputType = {
id: string | null
status: $Enums.ParticipantStatus | null
createdAt: Date | null
markedPaidAt: Date | null
paymentConfirmedAt: Date | null
tripId: string | null
userId: string | null
}
@@ -44,6 +48,8 @@ export type TripParticipantCountAggregateOutputType = {
id: number
status: number
createdAt: number
markedPaidAt: number
paymentConfirmedAt: number
tripId: number
userId: number
_all: number
@@ -54,6 +60,8 @@ export type TripParticipantMinAggregateInputType = {
id?: true
status?: true
createdAt?: true
markedPaidAt?: true
paymentConfirmedAt?: true
tripId?: true
userId?: true
}
@@ -62,6 +70,8 @@ export type TripParticipantMaxAggregateInputType = {
id?: true
status?: true
createdAt?: true
markedPaidAt?: true
paymentConfirmedAt?: true
tripId?: true
userId?: true
}
@@ -70,6 +80,8 @@ export type TripParticipantCountAggregateInputType = {
id?: true
status?: true
createdAt?: true
markedPaidAt?: true
paymentConfirmedAt?: true
tripId?: true
userId?: true
_all?: true
@@ -151,6 +163,8 @@ export type TripParticipantGroupByOutputType = {
id: string
status: $Enums.ParticipantStatus
createdAt: Date
markedPaidAt: Date | null
paymentConfirmedAt: Date | null
tripId: string
userId: string
_count: TripParticipantCountAggregateOutputType | null
@@ -180,6 +194,8 @@ export type TripParticipantWhereInput = {
id?: Prisma.StringFilter<"TripParticipant"> | string
status?: Prisma.EnumParticipantStatusFilter<"TripParticipant"> | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFilter<"TripParticipant"> | Date | string
markedPaidAt?: Prisma.DateTimeNullableFilter<"TripParticipant"> | Date | string | null
paymentConfirmedAt?: Prisma.DateTimeNullableFilter<"TripParticipant"> | Date | string | null
tripId?: Prisma.StringFilter<"TripParticipant"> | string
userId?: Prisma.StringFilter<"TripParticipant"> | string
trip?: Prisma.XOR<Prisma.TripScalarRelationFilter, Prisma.TripWhereInput>
@@ -190,6 +206,8 @@ export type TripParticipantOrderByWithRelationInput = {
id?: Prisma.SortOrder
status?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
markedPaidAt?: Prisma.SortOrderInput | Prisma.SortOrder
paymentConfirmedAt?: Prisma.SortOrderInput | Prisma.SortOrder
tripId?: Prisma.SortOrder
userId?: Prisma.SortOrder
trip?: Prisma.TripOrderByWithRelationInput
@@ -204,6 +222,8 @@ export type TripParticipantWhereUniqueInput = Prisma.AtLeast<{
NOT?: Prisma.TripParticipantWhereInput | Prisma.TripParticipantWhereInput[]
status?: Prisma.EnumParticipantStatusFilter<"TripParticipant"> | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFilter<"TripParticipant"> | Date | string
markedPaidAt?: Prisma.DateTimeNullableFilter<"TripParticipant"> | Date | string | null
paymentConfirmedAt?: Prisma.DateTimeNullableFilter<"TripParticipant"> | Date | string | null
tripId?: Prisma.StringFilter<"TripParticipant"> | string
userId?: Prisma.StringFilter<"TripParticipant"> | string
trip?: Prisma.XOR<Prisma.TripScalarRelationFilter, Prisma.TripWhereInput>
@@ -214,6 +234,8 @@ export type TripParticipantOrderByWithAggregationInput = {
id?: Prisma.SortOrder
status?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
markedPaidAt?: Prisma.SortOrderInput | Prisma.SortOrder
paymentConfirmedAt?: Prisma.SortOrderInput | Prisma.SortOrder
tripId?: Prisma.SortOrder
userId?: Prisma.SortOrder
_count?: Prisma.TripParticipantCountOrderByAggregateInput
@@ -228,6 +250,8 @@ export type TripParticipantScalarWhereWithAggregatesInput = {
id?: Prisma.StringWithAggregatesFilter<"TripParticipant"> | string
status?: Prisma.EnumParticipantStatusWithAggregatesFilter<"TripParticipant"> | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeWithAggregatesFilter<"TripParticipant"> | Date | string
markedPaidAt?: Prisma.DateTimeNullableWithAggregatesFilter<"TripParticipant"> | Date | string | null
paymentConfirmedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"TripParticipant"> | Date | string | null
tripId?: Prisma.StringWithAggregatesFilter<"TripParticipant"> | string
userId?: Prisma.StringWithAggregatesFilter<"TripParticipant"> | string
}
@@ -236,6 +260,8 @@ export type TripParticipantCreateInput = {
id?: string
status?: $Enums.ParticipantStatus
createdAt?: Date | string
markedPaidAt?: Date | string | null
paymentConfirmedAt?: Date | string | null
trip: Prisma.TripCreateNestedOneWithoutParticipantsInput
user: Prisma.UserCreateNestedOneWithoutParticipationsInput
}
@@ -244,6 +270,8 @@ export type TripParticipantUncheckedCreateInput = {
id?: string
status?: $Enums.ParticipantStatus
createdAt?: Date | string
markedPaidAt?: Date | string | null
paymentConfirmedAt?: Date | string | null
tripId: string
userId: string
}
@@ -252,6 +280,8 @@ export type TripParticipantUpdateInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumParticipantStatusFieldUpdateOperationsInput | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
markedPaidAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
paymentConfirmedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
trip?: Prisma.TripUpdateOneRequiredWithoutParticipantsNestedInput
user?: Prisma.UserUpdateOneRequiredWithoutParticipationsNestedInput
}
@@ -260,6 +290,8 @@ export type TripParticipantUncheckedUpdateInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumParticipantStatusFieldUpdateOperationsInput | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
markedPaidAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
paymentConfirmedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
tripId?: Prisma.StringFieldUpdateOperationsInput | string
userId?: Prisma.StringFieldUpdateOperationsInput | string
}
@@ -268,6 +300,8 @@ export type TripParticipantCreateManyInput = {
id?: string
status?: $Enums.ParticipantStatus
createdAt?: Date | string
markedPaidAt?: Date | string | null
paymentConfirmedAt?: Date | string | null
tripId: string
userId: string
}
@@ -276,12 +310,16 @@ export type TripParticipantUpdateManyMutationInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumParticipantStatusFieldUpdateOperationsInput | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
markedPaidAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
paymentConfirmedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
}
export type TripParticipantUncheckedUpdateManyInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumParticipantStatusFieldUpdateOperationsInput | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
markedPaidAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
paymentConfirmedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
tripId?: Prisma.StringFieldUpdateOperationsInput | string
userId?: Prisma.StringFieldUpdateOperationsInput | string
}
@@ -305,6 +343,8 @@ export type TripParticipantCountOrderByAggregateInput = {
id?: Prisma.SortOrder
status?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
markedPaidAt?: Prisma.SortOrder
paymentConfirmedAt?: Prisma.SortOrder
tripId?: Prisma.SortOrder
userId?: Prisma.SortOrder
}
@@ -313,6 +353,8 @@ export type TripParticipantMaxOrderByAggregateInput = {
id?: Prisma.SortOrder
status?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
markedPaidAt?: Prisma.SortOrder
paymentConfirmedAt?: Prisma.SortOrder
tripId?: Prisma.SortOrder
userId?: Prisma.SortOrder
}
@@ -321,6 +363,8 @@ export type TripParticipantMinOrderByAggregateInput = {
id?: Prisma.SortOrder
status?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
markedPaidAt?: Prisma.SortOrder
paymentConfirmedAt?: Prisma.SortOrder
tripId?: Prisma.SortOrder
userId?: Prisma.SortOrder
}
@@ -417,6 +461,8 @@ export type TripParticipantCreateWithoutUserInput = {
id?: string
status?: $Enums.ParticipantStatus
createdAt?: Date | string
markedPaidAt?: Date | string | null
paymentConfirmedAt?: Date | string | null
trip: Prisma.TripCreateNestedOneWithoutParticipantsInput
}
@@ -424,6 +470,8 @@ export type TripParticipantUncheckedCreateWithoutUserInput = {
id?: string
status?: $Enums.ParticipantStatus
createdAt?: Date | string
markedPaidAt?: Date | string | null
paymentConfirmedAt?: Date | string | null
tripId: string
}
@@ -460,6 +508,8 @@ export type TripParticipantScalarWhereInput = {
id?: Prisma.StringFilter<"TripParticipant"> | string
status?: Prisma.EnumParticipantStatusFilter<"TripParticipant"> | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFilter<"TripParticipant"> | Date | string
markedPaidAt?: Prisma.DateTimeNullableFilter<"TripParticipant"> | Date | string | null
paymentConfirmedAt?: Prisma.DateTimeNullableFilter<"TripParticipant"> | Date | string | null
tripId?: Prisma.StringFilter<"TripParticipant"> | string
userId?: Prisma.StringFilter<"TripParticipant"> | string
}
@@ -468,6 +518,8 @@ export type TripParticipantCreateWithoutTripInput = {
id?: string
status?: $Enums.ParticipantStatus
createdAt?: Date | string
markedPaidAt?: Date | string | null
paymentConfirmedAt?: Date | string | null
user: Prisma.UserCreateNestedOneWithoutParticipationsInput
}
@@ -475,6 +527,8 @@ export type TripParticipantUncheckedCreateWithoutTripInput = {
id?: string
status?: $Enums.ParticipantStatus
createdAt?: Date | string
markedPaidAt?: Date | string | null
paymentConfirmedAt?: Date | string | null
userId: string
}
@@ -508,6 +562,8 @@ export type TripParticipantCreateManyUserInput = {
id?: string
status?: $Enums.ParticipantStatus
createdAt?: Date | string
markedPaidAt?: Date | string | null
paymentConfirmedAt?: Date | string | null
tripId: string
}
@@ -515,6 +571,8 @@ export type TripParticipantUpdateWithoutUserInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumParticipantStatusFieldUpdateOperationsInput | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
markedPaidAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
paymentConfirmedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
trip?: Prisma.TripUpdateOneRequiredWithoutParticipantsNestedInput
}
@@ -522,6 +580,8 @@ export type TripParticipantUncheckedUpdateWithoutUserInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumParticipantStatusFieldUpdateOperationsInput | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
markedPaidAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
paymentConfirmedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
tripId?: Prisma.StringFieldUpdateOperationsInput | string
}
@@ -529,6 +589,8 @@ export type TripParticipantUncheckedUpdateManyWithoutUserInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumParticipantStatusFieldUpdateOperationsInput | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
markedPaidAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
paymentConfirmedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
tripId?: Prisma.StringFieldUpdateOperationsInput | string
}
@@ -536,6 +598,8 @@ export type TripParticipantCreateManyTripInput = {
id?: string
status?: $Enums.ParticipantStatus
createdAt?: Date | string
markedPaidAt?: Date | string | null
paymentConfirmedAt?: Date | string | null
userId: string
}
@@ -543,6 +607,8 @@ export type TripParticipantUpdateWithoutTripInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumParticipantStatusFieldUpdateOperationsInput | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
markedPaidAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
paymentConfirmedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
user?: Prisma.UserUpdateOneRequiredWithoutParticipationsNestedInput
}
@@ -550,6 +616,8 @@ export type TripParticipantUncheckedUpdateWithoutTripInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumParticipantStatusFieldUpdateOperationsInput | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
markedPaidAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
paymentConfirmedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
userId?: Prisma.StringFieldUpdateOperationsInput | string
}
@@ -557,6 +625,8 @@ export type TripParticipantUncheckedUpdateManyWithoutTripInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumParticipantStatusFieldUpdateOperationsInput | $Enums.ParticipantStatus
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
markedPaidAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
paymentConfirmedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
userId?: Prisma.StringFieldUpdateOperationsInput | string
}
@@ -566,6 +636,8 @@ export type TripParticipantSelect<ExtArgs extends runtime.Types.Extensions.Inter
id?: boolean
status?: boolean
createdAt?: boolean
markedPaidAt?: boolean
paymentConfirmedAt?: boolean
tripId?: boolean
userId?: boolean
trip?: boolean | Prisma.TripDefaultArgs<ExtArgs>
@@ -576,6 +648,8 @@ export type TripParticipantSelectCreateManyAndReturn<ExtArgs extends runtime.Typ
id?: boolean
status?: boolean
createdAt?: boolean
markedPaidAt?: boolean
paymentConfirmedAt?: boolean
tripId?: boolean
userId?: boolean
trip?: boolean | Prisma.TripDefaultArgs<ExtArgs>
@@ -586,6 +660,8 @@ export type TripParticipantSelectUpdateManyAndReturn<ExtArgs extends runtime.Typ
id?: boolean
status?: boolean
createdAt?: boolean
markedPaidAt?: boolean
paymentConfirmedAt?: boolean
tripId?: boolean
userId?: boolean
trip?: boolean | Prisma.TripDefaultArgs<ExtArgs>
@@ -596,11 +672,13 @@ export type TripParticipantSelectScalar = {
id?: boolean
status?: boolean
createdAt?: boolean
markedPaidAt?: boolean
paymentConfirmedAt?: boolean
tripId?: boolean
userId?: boolean
}
export type TripParticipantOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "status" | "createdAt" | "tripId" | "userId", ExtArgs["result"]["tripParticipant"]>
export type TripParticipantOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "status" | "createdAt" | "markedPaidAt" | "paymentConfirmedAt" | "tripId" | "userId", ExtArgs["result"]["tripParticipant"]>
export type TripParticipantInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
trip?: boolean | Prisma.TripDefaultArgs<ExtArgs>
user?: boolean | Prisma.UserDefaultArgs<ExtArgs>
@@ -624,6 +702,14 @@ export type $TripParticipantPayload<ExtArgs extends runtime.Types.Extensions.Int
id: string
status: $Enums.ParticipantStatus
createdAt: Date
/**
* Peserta menekan "Saya sudah bayar" (pembayaran manual)
*/
markedPaidAt: Date | null
/**
* Organizer mengonfirmasi uang sudah masuk
*/
paymentConfirmedAt: Date | null
tripId: string
userId: string
}, ExtArgs["result"]["tripParticipant"]>
@@ -1054,6 +1140,8 @@ export interface TripParticipantFieldRefs {
readonly id: Prisma.FieldRef<"TripParticipant", 'String'>
readonly status: Prisma.FieldRef<"TripParticipant", 'ParticipantStatus'>
readonly createdAt: Prisma.FieldRef<"TripParticipant", 'DateTime'>
readonly markedPaidAt: Prisma.FieldRef<"TripParticipant", 'DateTime'>
readonly paymentConfirmedAt: Prisma.FieldRef<"TripParticipant", 'DateTime'>
readonly tripId: Prisma.FieldRef<"TripParticipant", 'String'>
readonly userId: Prisma.FieldRef<"TripParticipant", 'String'>
}