feat: add price field to CourtBooking model and related schemas

- Added `price` field to `CourtBookingScalarFieldEnum` in `prismaNamespace.ts` and `prismaNamespaceBrowser.ts`.
- Updated `CourtBooking` model to include average and sum aggregations for `price`.
- Enhanced input types and aggregate input types to support `price`.
- Modified `public-booking.service.ts` to calculate and return price information for bookings.
- Updated frontend components to display price information in booking confirmation and selection pages.
- Introduced `priceRangeSchema` in API contract to validate price ranges.
This commit is contained in:
Jose Selesan
2026-04-24 15:22:11 -03:00
parent c63f0f2109
commit fb19458ddf
10 changed files with 290 additions and 4 deletions

View File

@@ -20,10 +20,20 @@ export type CourtBookingModel = runtime.Types.Result.DefaultSelection<Prisma.$Co
export type AggregateCourtBooking = {
_count: CourtBookingCountAggregateOutputType | null
_avg: CourtBookingAvgAggregateOutputType | null
_sum: CourtBookingSumAggregateOutputType | null
_min: CourtBookingMinAggregateOutputType | null
_max: CourtBookingMaxAggregateOutputType | null
}
export type CourtBookingAvgAggregateOutputType = {
price: runtime.Decimal | null
}
export type CourtBookingSumAggregateOutputType = {
price: runtime.Decimal | null
}
export type CourtBookingMinAggregateOutputType = {
id: string | null
bookingCode: string | null
@@ -31,6 +41,7 @@ export type CourtBookingMinAggregateOutputType = {
bookingDate: Date | null
startTime: string | null
endTime: string | null
price: runtime.Decimal | null
customerName: string | null
customerPhone: string | null
status: $Enums.CourtBookingStatus | null
@@ -45,6 +56,7 @@ export type CourtBookingMaxAggregateOutputType = {
bookingDate: Date | null
startTime: string | null
endTime: string | null
price: runtime.Decimal | null
customerName: string | null
customerPhone: string | null
status: $Enums.CourtBookingStatus | null
@@ -59,6 +71,7 @@ export type CourtBookingCountAggregateOutputType = {
bookingDate: number
startTime: number
endTime: number
price: number
customerName: number
customerPhone: number
status: number
@@ -68,6 +81,14 @@ export type CourtBookingCountAggregateOutputType = {
}
export type CourtBookingAvgAggregateInputType = {
price?: true
}
export type CourtBookingSumAggregateInputType = {
price?: true
}
export type CourtBookingMinAggregateInputType = {
id?: true
bookingCode?: true
@@ -75,6 +96,7 @@ export type CourtBookingMinAggregateInputType = {
bookingDate?: true
startTime?: true
endTime?: true
price?: true
customerName?: true
customerPhone?: true
status?: true
@@ -89,6 +111,7 @@ export type CourtBookingMaxAggregateInputType = {
bookingDate?: true
startTime?: true
endTime?: true
price?: true
customerName?: true
customerPhone?: true
status?: true
@@ -103,6 +126,7 @@ export type CourtBookingCountAggregateInputType = {
bookingDate?: true
startTime?: true
endTime?: true
price?: true
customerName?: true
customerPhone?: true
status?: true
@@ -146,6 +170,18 @@ export type CourtBookingAggregateArgs<ExtArgs extends runtime.Types.Extensions.I
* Count returned CourtBookings
**/
_count?: true | CourtBookingCountAggregateInputType
/**
* {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
*
* Select which fields to average
**/
_avg?: CourtBookingAvgAggregateInputType
/**
* {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
*
* Select which fields to sum
**/
_sum?: CourtBookingSumAggregateInputType
/**
* {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
*
@@ -179,6 +215,8 @@ export type CourtBookingGroupByArgs<ExtArgs extends runtime.Types.Extensions.Int
take?: number
skip?: number
_count?: CourtBookingCountAggregateInputType | true
_avg?: CourtBookingAvgAggregateInputType
_sum?: CourtBookingSumAggregateInputType
_min?: CourtBookingMinAggregateInputType
_max?: CourtBookingMaxAggregateInputType
}
@@ -190,12 +228,15 @@ export type CourtBookingGroupByOutputType = {
bookingDate: Date
startTime: string
endTime: string
price: runtime.Decimal | null
customerName: string
customerPhone: string
status: $Enums.CourtBookingStatus
createdAt: Date
updatedAt: Date
_count: CourtBookingCountAggregateOutputType | null
_avg: CourtBookingAvgAggregateOutputType | null
_sum: CourtBookingSumAggregateOutputType | null
_min: CourtBookingMinAggregateOutputType | null
_max: CourtBookingMaxAggregateOutputType | null
}
@@ -225,6 +266,7 @@ export type CourtBookingWhereInput = {
bookingDate?: Prisma.DateTimeFilter<"CourtBooking"> | Date | string
startTime?: Prisma.StringFilter<"CourtBooking"> | string
endTime?: Prisma.StringFilter<"CourtBooking"> | string
price?: Prisma.DecimalNullableFilter<"CourtBooking"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringFilter<"CourtBooking"> | string
customerPhone?: Prisma.StringFilter<"CourtBooking"> | string
status?: Prisma.EnumCourtBookingStatusFilter<"CourtBooking"> | $Enums.CourtBookingStatus
@@ -240,6 +282,7 @@ export type CourtBookingOrderByWithRelationInput = {
bookingDate?: Prisma.SortOrder
startTime?: Prisma.SortOrder
endTime?: Prisma.SortOrder
price?: Prisma.SortOrderInput | Prisma.SortOrder
customerName?: Prisma.SortOrder
customerPhone?: Prisma.SortOrder
status?: Prisma.SortOrder
@@ -259,6 +302,7 @@ export type CourtBookingWhereUniqueInput = Prisma.AtLeast<{
bookingDate?: Prisma.DateTimeFilter<"CourtBooking"> | Date | string
startTime?: Prisma.StringFilter<"CourtBooking"> | string
endTime?: Prisma.StringFilter<"CourtBooking"> | string
price?: Prisma.DecimalNullableFilter<"CourtBooking"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringFilter<"CourtBooking"> | string
customerPhone?: Prisma.StringFilter<"CourtBooking"> | string
status?: Prisma.EnumCourtBookingStatusFilter<"CourtBooking"> | $Enums.CourtBookingStatus
@@ -274,14 +318,17 @@ export type CourtBookingOrderByWithAggregationInput = {
bookingDate?: Prisma.SortOrder
startTime?: Prisma.SortOrder
endTime?: Prisma.SortOrder
price?: Prisma.SortOrderInput | Prisma.SortOrder
customerName?: Prisma.SortOrder
customerPhone?: Prisma.SortOrder
status?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
_count?: Prisma.CourtBookingCountOrderByAggregateInput
_avg?: Prisma.CourtBookingAvgOrderByAggregateInput
_max?: Prisma.CourtBookingMaxOrderByAggregateInput
_min?: Prisma.CourtBookingMinOrderByAggregateInput
_sum?: Prisma.CourtBookingSumOrderByAggregateInput
}
export type CourtBookingScalarWhereWithAggregatesInput = {
@@ -294,6 +341,7 @@ export type CourtBookingScalarWhereWithAggregatesInput = {
bookingDate?: Prisma.DateTimeWithAggregatesFilter<"CourtBooking"> | Date | string
startTime?: Prisma.StringWithAggregatesFilter<"CourtBooking"> | string
endTime?: Prisma.StringWithAggregatesFilter<"CourtBooking"> | string
price?: Prisma.DecimalNullableWithAggregatesFilter<"CourtBooking"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringWithAggregatesFilter<"CourtBooking"> | string
customerPhone?: Prisma.StringWithAggregatesFilter<"CourtBooking"> | string
status?: Prisma.EnumCourtBookingStatusWithAggregatesFilter<"CourtBooking"> | $Enums.CourtBookingStatus
@@ -307,6 +355,7 @@ export type CourtBookingCreateInput = {
bookingDate: Date | string
startTime: string
endTime: string
price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName: string
customerPhone: string
status?: $Enums.CourtBookingStatus
@@ -322,6 +371,7 @@ export type CourtBookingUncheckedCreateInput = {
bookingDate: Date | string
startTime: string
endTime: string
price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName: string
customerPhone: string
status?: $Enums.CourtBookingStatus
@@ -335,6 +385,7 @@ export type CourtBookingUpdateInput = {
bookingDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
startTime?: Prisma.StringFieldUpdateOperationsInput | string
endTime?: Prisma.StringFieldUpdateOperationsInput | string
price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringFieldUpdateOperationsInput | string
customerPhone?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus
@@ -350,6 +401,7 @@ export type CourtBookingUncheckedUpdateInput = {
bookingDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
startTime?: Prisma.StringFieldUpdateOperationsInput | string
endTime?: Prisma.StringFieldUpdateOperationsInput | string
price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringFieldUpdateOperationsInput | string
customerPhone?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus
@@ -364,6 +416,7 @@ export type CourtBookingCreateManyInput = {
bookingDate: Date | string
startTime: string
endTime: string
price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName: string
customerPhone: string
status?: $Enums.CourtBookingStatus
@@ -377,6 +430,7 @@ export type CourtBookingUpdateManyMutationInput = {
bookingDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
startTime?: Prisma.StringFieldUpdateOperationsInput | string
endTime?: Prisma.StringFieldUpdateOperationsInput | string
price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringFieldUpdateOperationsInput | string
customerPhone?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus
@@ -391,6 +445,7 @@ export type CourtBookingUncheckedUpdateManyInput = {
bookingDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
startTime?: Prisma.StringFieldUpdateOperationsInput | string
endTime?: Prisma.StringFieldUpdateOperationsInput | string
price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringFieldUpdateOperationsInput | string
customerPhone?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus
@@ -421,6 +476,7 @@ export type CourtBookingCountOrderByAggregateInput = {
bookingDate?: Prisma.SortOrder
startTime?: Prisma.SortOrder
endTime?: Prisma.SortOrder
price?: Prisma.SortOrder
customerName?: Prisma.SortOrder
customerPhone?: Prisma.SortOrder
status?: Prisma.SortOrder
@@ -428,6 +484,10 @@ export type CourtBookingCountOrderByAggregateInput = {
updatedAt?: Prisma.SortOrder
}
export type CourtBookingAvgOrderByAggregateInput = {
price?: Prisma.SortOrder
}
export type CourtBookingMaxOrderByAggregateInput = {
id?: Prisma.SortOrder
bookingCode?: Prisma.SortOrder
@@ -435,6 +495,7 @@ export type CourtBookingMaxOrderByAggregateInput = {
bookingDate?: Prisma.SortOrder
startTime?: Prisma.SortOrder
endTime?: Prisma.SortOrder
price?: Prisma.SortOrder
customerName?: Prisma.SortOrder
customerPhone?: Prisma.SortOrder
status?: Prisma.SortOrder
@@ -449,6 +510,7 @@ export type CourtBookingMinOrderByAggregateInput = {
bookingDate?: Prisma.SortOrder
startTime?: Prisma.SortOrder
endTime?: Prisma.SortOrder
price?: Prisma.SortOrder
customerName?: Prisma.SortOrder
customerPhone?: Prisma.SortOrder
status?: Prisma.SortOrder
@@ -456,6 +518,10 @@ export type CourtBookingMinOrderByAggregateInput = {
updatedAt?: Prisma.SortOrder
}
export type CourtBookingSumOrderByAggregateInput = {
price?: Prisma.SortOrder
}
export type CourtBookingCreateNestedManyWithoutCourtInput = {
create?: Prisma.XOR<Prisma.CourtBookingCreateWithoutCourtInput, Prisma.CourtBookingUncheckedCreateWithoutCourtInput> | Prisma.CourtBookingCreateWithoutCourtInput[] | Prisma.CourtBookingUncheckedCreateWithoutCourtInput[]
connectOrCreate?: Prisma.CourtBookingCreateOrConnectWithoutCourtInput | Prisma.CourtBookingCreateOrConnectWithoutCourtInput[]
@@ -498,6 +564,14 @@ export type CourtBookingUncheckedUpdateManyWithoutCourtNestedInput = {
deleteMany?: Prisma.CourtBookingScalarWhereInput | Prisma.CourtBookingScalarWhereInput[]
}
export type NullableDecimalFieldUpdateOperationsInput = {
set?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
increment?: runtime.Decimal | runtime.DecimalJsLike | number | string
decrement?: runtime.Decimal | runtime.DecimalJsLike | number | string
multiply?: runtime.Decimal | runtime.DecimalJsLike | number | string
divide?: runtime.Decimal | runtime.DecimalJsLike | number | string
}
export type EnumCourtBookingStatusFieldUpdateOperationsInput = {
set?: $Enums.CourtBookingStatus
}
@@ -508,6 +582,7 @@ export type CourtBookingCreateWithoutCourtInput = {
bookingDate: Date | string
startTime: string
endTime: string
price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName: string
customerPhone: string
status?: $Enums.CourtBookingStatus
@@ -521,6 +596,7 @@ export type CourtBookingUncheckedCreateWithoutCourtInput = {
bookingDate: Date | string
startTime: string
endTime: string
price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName: string
customerPhone: string
status?: $Enums.CourtBookingStatus
@@ -564,6 +640,7 @@ export type CourtBookingScalarWhereInput = {
bookingDate?: Prisma.DateTimeFilter<"CourtBooking"> | Date | string
startTime?: Prisma.StringFilter<"CourtBooking"> | string
endTime?: Prisma.StringFilter<"CourtBooking"> | string
price?: Prisma.DecimalNullableFilter<"CourtBooking"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringFilter<"CourtBooking"> | string
customerPhone?: Prisma.StringFilter<"CourtBooking"> | string
status?: Prisma.EnumCourtBookingStatusFilter<"CourtBooking"> | $Enums.CourtBookingStatus
@@ -577,6 +654,7 @@ export type CourtBookingCreateManyCourtInput = {
bookingDate: Date | string
startTime: string
endTime: string
price?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName: string
customerPhone: string
status?: $Enums.CourtBookingStatus
@@ -590,6 +668,7 @@ export type CourtBookingUpdateWithoutCourtInput = {
bookingDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
startTime?: Prisma.StringFieldUpdateOperationsInput | string
endTime?: Prisma.StringFieldUpdateOperationsInput | string
price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringFieldUpdateOperationsInput | string
customerPhone?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus
@@ -603,6 +682,7 @@ export type CourtBookingUncheckedUpdateWithoutCourtInput = {
bookingDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
startTime?: Prisma.StringFieldUpdateOperationsInput | string
endTime?: Prisma.StringFieldUpdateOperationsInput | string
price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringFieldUpdateOperationsInput | string
customerPhone?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus
@@ -616,6 +696,7 @@ export type CourtBookingUncheckedUpdateManyWithoutCourtInput = {
bookingDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
startTime?: Prisma.StringFieldUpdateOperationsInput | string
endTime?: Prisma.StringFieldUpdateOperationsInput | string
price?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
customerName?: Prisma.StringFieldUpdateOperationsInput | string
customerPhone?: Prisma.StringFieldUpdateOperationsInput | string
status?: Prisma.EnumCourtBookingStatusFieldUpdateOperationsInput | $Enums.CourtBookingStatus
@@ -632,6 +713,7 @@ export type CourtBookingSelect<ExtArgs extends runtime.Types.Extensions.Internal
bookingDate?: boolean
startTime?: boolean
endTime?: boolean
price?: boolean
customerName?: boolean
customerPhone?: boolean
status?: boolean
@@ -647,6 +729,7 @@ export type CourtBookingSelectCreateManyAndReturn<ExtArgs extends runtime.Types.
bookingDate?: boolean
startTime?: boolean
endTime?: boolean
price?: boolean
customerName?: boolean
customerPhone?: boolean
status?: boolean
@@ -662,6 +745,7 @@ export type CourtBookingSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.
bookingDate?: boolean
startTime?: boolean
endTime?: boolean
price?: boolean
customerName?: boolean
customerPhone?: boolean
status?: boolean
@@ -677,6 +761,7 @@ export type CourtBookingSelectScalar = {
bookingDate?: boolean
startTime?: boolean
endTime?: boolean
price?: boolean
customerName?: boolean
customerPhone?: boolean
status?: boolean
@@ -684,7 +769,7 @@ export type CourtBookingSelectScalar = {
updatedAt?: boolean
}
export type CourtBookingOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "bookingCode" | "courtId" | "bookingDate" | "startTime" | "endTime" | "customerName" | "customerPhone" | "status" | "createdAt" | "updatedAt", ExtArgs["result"]["courtBooking"]>
export type CourtBookingOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "bookingCode" | "courtId" | "bookingDate" | "startTime" | "endTime" | "price" | "customerName" | "customerPhone" | "status" | "createdAt" | "updatedAt", ExtArgs["result"]["courtBooking"]>
export type CourtBookingInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
court?: boolean | Prisma.CourtDefaultArgs<ExtArgs>
}
@@ -707,6 +792,7 @@ export type $CourtBookingPayload<ExtArgs extends runtime.Types.Extensions.Intern
bookingDate: Date
startTime: string
endTime: string
price: runtime.Decimal | null
customerName: string
customerPhone: string
status: $Enums.CourtBookingStatus
@@ -1142,6 +1228,7 @@ export interface CourtBookingFieldRefs {
readonly bookingDate: Prisma.FieldRef<"CourtBooking", 'DateTime'>
readonly startTime: Prisma.FieldRef<"CourtBooking", 'String'>
readonly endTime: Prisma.FieldRef<"CourtBooking", 'String'>
readonly price: Prisma.FieldRef<"CourtBooking", 'Decimal'>
readonly customerName: Prisma.FieldRef<"CourtBooking", 'String'>
readonly customerPhone: Prisma.FieldRef<"CourtBooking", 'String'>
readonly status: Prisma.FieldRef<"CourtBooking", 'CourtBookingStatus'>