@bash-app/bash-common 30.57.0 → 30.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/extendedSchemas.d.ts +44 -0
  2. package/dist/extendedSchemas.d.ts.map +1 -1
  3. package/dist/extendedSchemas.js +6 -0
  4. package/dist/extendedSchemas.js.map +1 -1
  5. package/dist/utils/dateTimeUtils.d.ts +1 -17
  6. package/dist/utils/dateTimeUtils.d.ts.map +1 -1
  7. package/dist/utils/dateTimeUtils.js +1 -114
  8. package/dist/utils/dateTimeUtils.js.map +1 -1
  9. package/dist/utils/luxonUtils.d.ts +17 -6
  10. package/dist/utils/luxonUtils.d.ts.map +1 -1
  11. package/dist/utils/luxonUtils.js +31 -3
  12. package/dist/utils/luxonUtils.js.map +1 -1
  13. package/dist/utils/recurrenceUtils.d.ts +1 -1
  14. package/dist/utils/recurrenceUtils.d.ts.map +1 -1
  15. package/dist/utils/recurrenceUtils.js +24 -49
  16. package/dist/utils/recurrenceUtils.js.map +1 -1
  17. package/dist/utils/service/apiServiceBookingApiUtils.d.ts +14 -2
  18. package/dist/utils/service/apiServiceBookingApiUtils.d.ts.map +1 -1
  19. package/dist/utils/service/apiServiceBookingApiUtils.js +36 -2
  20. package/dist/utils/service/apiServiceBookingApiUtils.js.map +1 -1
  21. package/dist/utils/service/frontendServiceBookingUtils.d.ts +10 -3
  22. package/dist/utils/service/frontendServiceBookingUtils.d.ts.map +1 -1
  23. package/dist/utils/service/frontendServiceBookingUtils.js +86 -40
  24. package/dist/utils/service/frontendServiceBookingUtils.js.map +1 -1
  25. package/dist/utils/service/serviceBookingTypes.d.ts +4 -2
  26. package/dist/utils/service/serviceBookingTypes.d.ts.map +1 -1
  27. package/dist/utils/ticketListUtils.d.ts.map +1 -1
  28. package/dist/utils/ticketListUtils.js +10 -13
  29. package/dist/utils/ticketListUtils.js.map +1 -1
  30. package/dist/utils/typeUtils.d.ts +5 -0
  31. package/dist/utils/typeUtils.d.ts.map +1 -1
  32. package/dist/utils/typeUtils.js.map +1 -1
  33. package/package.json +1 -1
  34. package/prisma/schema.prisma +36 -41
  35. package/src/extendedSchemas.ts +9 -0
  36. package/src/utils/dateTimeUtils.ts +7 -190
  37. package/src/utils/luxonUtils.ts +56 -10
  38. package/src/utils/recurrenceUtils.ts +97 -77
  39. package/src/utils/service/apiServiceBookingApiUtils.ts +64 -7
  40. package/src/utils/service/frontendServiceBookingUtils.ts +120 -49
  41. package/src/utils/service/serviceBookingTypes.ts +30 -2
  42. package/src/utils/ticketListUtils.ts +40 -27
  43. package/src/utils/typeUtils.ts +15 -8
@@ -1,8 +1,8 @@
1
- import { ServiceBookingFeeType, } from "@prisma/client";
1
+ import { ServiceBookingFeeType, ServiceBookingRateOption, } from "@prisma/client";
2
2
  import { getServiceRatePricingInfo, SERVICE_DAILY_RATE_HOURS_MIN, serviceGetFilteredRates, serviceRatesFilter, serviceRatesHasRates, } from "./serviceRateUtils";
3
3
  import { dateTimeDiffHours, } from "../luxonUtils";
4
4
  export const SERVICE_BOOKING_PROCESSING_FEE_PERCENT = 0.15;
5
- export function frontendServiceGetBookingDayInfo({ filteredRates, daysToBookParams,
5
+ export function frontendServiceGetBookingDayInfo({ rateOption, filteredRates, daysToBookParams,
6
6
  // overlappingBusinessHours,
7
7
  timezone, }) {
8
8
  const bookingDayResults = daysToBookParams.map((day) => {
@@ -16,73 +16,113 @@ timezone, }) {
16
16
  let hoursRemaining = durationHours;
17
17
  let currentRange = { ...day.dateTimeRange };
18
18
  let baseCostDiscountedCents = 0;
19
- const rates = serviceRatesFilter(filteredRates, [day.dateTimeRange]);
20
- const { generalRate, specialRates, dailyRates } = rates;
21
- while (serviceRatesHasRates(rates) && hoursRemaining > 0) {
22
- const pricingInfo = getServiceRatePricingInfo(currentRange, generalRate, dailyRates, specialRates,
23
- // overlappingBusinessHours,
24
- timezone, hoursRemaining);
25
- if (pricingInfo.hours == 0 || pricingInfo.unitCount == 0) {
26
- throw new Error(`Invalid pricingInfo`);
27
- }
28
- priceBreakdown.push(pricingInfo);
29
- // currentRange.start = currentRange.start.plus({
30
- // hours: pricingInfo.hours,
31
- // });
32
- currentRange.start = pricingInfo.dateTimeRange.end;
33
- hoursRemaining -= pricingInfo.hours;
34
- baseCostDiscountedCents += pricingInfo.piTotalCents;
35
- if (pricingInfo.hours < SERVICE_DAILY_RATE_HOURS_MIN) {
36
- if (pricingInfo.rateType == "Special") {
37
- specialRates.pop();
19
+ if (rateOption === ServiceBookingRateOption.FlatRate) {
20
+ }
21
+ else if (rateOption === ServiceBookingRateOption.TimeBased) {
22
+ const rates = serviceRatesFilter(filteredRates, [day.dateTimeRange]);
23
+ const { generalRate, specialRates, dailyRates } = rates;
24
+ while (serviceRatesHasRates(rates) && hoursRemaining > 0) {
25
+ const pricingInfo = getServiceRatePricingInfo(currentRange, generalRate, dailyRates, specialRates,
26
+ // overlappingBusinessHours,
27
+ timezone, hoursRemaining);
28
+ if (pricingInfo.hours == 0 || pricingInfo.unitCount == 0) {
29
+ throw new Error(`Invalid pricingInfo`);
38
30
  }
39
- else if (pricingInfo.rateType == "Weekday") {
40
- dailyRates.pop();
31
+ priceBreakdown.push(pricingInfo);
32
+ // currentRange.start = currentRange.start.plus({
33
+ // hours: pricingInfo.hours,
34
+ // });
35
+ currentRange.start = pricingInfo.dateTimeRange.end;
36
+ hoursRemaining -= pricingInfo.hours;
37
+ baseCostDiscountedCents += pricingInfo.piTotalCents;
38
+ if (pricingInfo.hours < SERVICE_DAILY_RATE_HOURS_MIN) {
39
+ if (pricingInfo.rateType == "Special") {
40
+ specialRates.pop();
41
+ }
42
+ else if (pricingInfo.rateType == "Weekday") {
43
+ dailyRates.pop();
44
+ }
41
45
  }
42
46
  }
43
47
  }
44
- const addOns = day.addOns.map((addOn) => {
45
- return {
46
- addOn: addOn,
47
- addOnId: addOn.id,
48
- chosenQuantity: addOn.chosenQuantity ?? 0,
49
- costPQCents: addOn.priceCents,
50
- };
51
- });
48
+ const addOns = rateOption === "FlatRate"
49
+ ? []
50
+ : day.addOns.map((addOn) => {
51
+ return {
52
+ addOn: addOn,
53
+ addOnId: addOn.id,
54
+ chosenQuantity: addOn.chosenQuantity ?? 0,
55
+ costPQCents: addOn.priceCents,
56
+ };
57
+ });
52
58
  const feesTotalCents = day.fees.reduce((sofar, fee) => sofar + fee.costPQCents * fee.quantity, 0);
53
59
  const addOnsTotalCents = addOns.reduce((sofar, addOn) => sofar + addOn.costPQCents * addOn.chosenQuantity, 0);
54
- const totalBeforeTaxesCents = baseCostDiscountedCents + addOnsTotalCents + feesTotalCents;
60
+ const subtotalBeforeTaxesCents = baseCostDiscountedCents + addOnsTotalCents;
61
+ const totalBeforeTaxesCents = subtotalBeforeTaxesCents + feesTotalCents;
55
62
  return {
56
63
  priceBreakdown: priceBreakdown,
57
64
  dateTimeRange: day.dateTimeRange,
65
+ rateOption: rateOption,
58
66
  timezone: day.dateTimeRange.start.zoneName,
59
67
  fees: day.fees,
60
68
  addOns: addOns,
69
+ subtotalBeforeTaxesCents: subtotalBeforeTaxesCents,
61
70
  totalBeforeTaxesCents: totalBeforeTaxesCents,
62
71
  };
63
72
  });
64
73
  return bookingDayResults;
65
74
  }
66
- export function frontendServiceGetPriceToBookFees(serviceRatesAssociation, { daysToBookParams, selectedAttendeeOption, additionalFees,
75
+ export function frontendServiceGetPriceToBookFees(serviceRatesAssociation, { daysToBookParams, selectedAttendeeOption, addOns, additionalFees,
67
76
  // overlappingBusinessHours,
68
77
  timezone, }) {
69
78
  const bookingDateTimeRanges = daysToBookParams.map((daysToBookParams) => daysToBookParams.dateTimeRange);
70
79
  const filteredRates = serviceGetFilteredRates(serviceRatesAssociation, bookingDateTimeRanges, timezone);
80
+ const isFlatRate = (filteredRates.generalRate?.flatRateCents ?? 0) > 0;
81
+ const rateOption = isFlatRate
82
+ ? ServiceBookingRateOption.FlatRate
83
+ : ServiceBookingRateOption.TimeBased;
84
+ //only add addOns if flat rate booking (addOns are part of the day for time based bookings)
85
+ const usedAddons = rateOption === ServiceBookingRateOption.FlatRate
86
+ ? addOns.map((addOn) => {
87
+ return {
88
+ addOn: addOn,
89
+ addOnId: addOn.id,
90
+ chosenQuantity: addOn.chosenQuantity ?? 0,
91
+ costPQCents: addOn.priceCents,
92
+ };
93
+ })
94
+ : [];
71
95
  const bookingDayResults = frontendServiceGetBookingDayInfo({
96
+ rateOption: rateOption,
72
97
  filteredRates: filteredRates,
73
98
  daysToBookParams: daysToBookParams,
74
99
  // overlappingBusinessHours: overlappingBusinessHours,
75
100
  timezone: timezone,
76
101
  });
77
- const daysTotalBeforeTaxesCents = bookingDayResults.reduce((sofar, curr) => {
78
- return sofar + curr.totalBeforeTaxesCents;
79
- }, 0);
102
+ const flatRateCents = filteredRates.generalRate?.flatRateCents ?? 0;
103
+ const daysTotalBeforeTaxesCents = rateOption === ServiceBookingRateOption.FlatRate
104
+ ? flatRateCents
105
+ : bookingDayResults.reduce((sofar, curr) => {
106
+ return sofar + curr.totalBeforeTaxesCents;
107
+ }, 0);
80
108
  const minimumTimeBlockHours = serviceRatesAssociation?.serviceGeneralRates?.minimumTimeBlockHours;
81
109
  // const attendeeRate = selectedAttendeeOption.rate * durationHours;
82
- const processingFeeCents = SERVICE_BOOKING_PROCESSING_FEE_PERCENT * daysTotalBeforeTaxesCents;
83
- const hasCustomProcessingFee = additionalFees.some((fee) => fee.feeType == ServiceBookingFeeType.ProcessingFee);
84
110
  let allAdditionalFees = [...additionalFees];
111
+ // if (rateOption === ServiceBookingRateOption.FlatRate) {
112
+ // allAdditionalFees.push({
113
+ // feeType: ServiceBookingFeeType.FlatRate,
114
+ // name: "Flat Rate",
115
+ // description: "Flat Rate",
116
+ // costPQCents: filteredRates.generalRate?.flatRateCents ?? 0,
117
+ // quantity: 1,
118
+ // });
119
+ // }
120
+ const hasCustomProcessingFee = additionalFees.some((fee) => fee.feeType == ServiceBookingFeeType.ProcessingFee);
121
+ allAdditionalFees = allAdditionalFees.filter((fee) => fee.costPQCents > 0);
122
+ const addOnsTotalCents = usedAddons.reduce((sofar, addOn) => sofar + addOn.costPQCents * addOn.chosenQuantity, 0);
123
+ const subtotalBeforeTaxesCents = daysTotalBeforeTaxesCents + addOnsTotalCents;
85
124
  if (!hasCustomProcessingFee) {
125
+ const processingFeeCents = SERVICE_BOOKING_PROCESSING_FEE_PERCENT * subtotalBeforeTaxesCents;
86
126
  allAdditionalFees.push({
87
127
  feeType: ServiceBookingFeeType.ProcessingFee,
88
128
  name: "Processing Fee",
@@ -91,16 +131,21 @@ timezone, }) {
91
131
  quantity: 1,
92
132
  });
93
133
  }
94
- allAdditionalFees = allAdditionalFees.filter((fee) => fee.costPQCents > 0);
95
134
  const allAdditionalFeesCents = allAdditionalFees.reduce((sofar, fee) => sofar + fee.costPQCents * fee.quantity, 0);
96
- const totalBeforeTaxesCents = daysTotalBeforeTaxesCents + allAdditionalFeesCents;
135
+ const totalBeforeTaxesCents = subtotalBeforeTaxesCents + allAdditionalFeesCents;
97
136
  return {
98
137
  serviceId: serviceRatesAssociation?.serviceId,
99
138
  daysToBook: bookingDayResults,
100
139
  daysTotalBeforeTaxesCents: daysTotalBeforeTaxesCents,
140
+ subtotalBeforeTaxesCents: subtotalBeforeTaxesCents,
101
141
  totalBeforeTaxesCents: totalBeforeTaxesCents,
102
142
  additionalFees: allAdditionalFees,
143
+ addOns: usedAddons,
103
144
  minimumTimeBlockHours: minimumTimeBlockHours,
145
+ rateOption: rateOption,
146
+ flatRateCents: (filteredRates.generalRate?.flatRateCents ?? 0) > 0
147
+ ? filteredRates.generalRate?.flatRateCents
148
+ : undefined,
104
149
  };
105
150
  }
106
151
  export function frontendServiceGetPriceToBook(serviceRatesAssociation, { addOns, selectedAttendeeOption, bookingDateTimeRanges, //list of dateTime ranges to book
@@ -128,6 +173,7 @@ timezone, }) {
128
173
  daysToBookParams: daysToBookParams,
129
174
  selectedAttendeeOption: selectedAttendeeOption,
130
175
  additionalFees: [],
176
+ addOns: addOns,
131
177
  timezone: timezone,
132
178
  });
133
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"frontendServiceBookingUtils.js","sourceRoot":"","sources":["../../../src/utils/service/frontendServiceBookingUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontendServiceBookingUtils.js","sourceRoot":"","sources":["../../../src/utils/service/frontendServiceBookingUtils.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { ServiceBookingAddOnExt, ServiceBookingFeeExt, ServiceBookingPriceBreakdownExt, ServiceBookingDayExt, ServiceBookingExt } from "../../extendedSchemas";
2
2
  import { LuxonDateRange } from "../luxonUtils";
3
- export type ServiceBookingAddOnBase = Omit<ServiceBookingAddOnExt, "id" | "serviceBookingDayId" | "serviceBookingDay">;
4
- export type ServiceBookingPackageBase = Omit<ServiceBookingAddOnExt, "id" | "serviceBookingDayId" | "serviceBookingDay">;
3
+ import { MakeNullablePropsOptional, MakeOptional } from "../typeUtils";
4
+ export type ServiceBookingAddOnBase = Omit<ServiceBookingAddOnExt, "id" | "serviceBookingDayId" | "serviceBookingDay" | "serviceBookingId" | "serviceBooking">;
5
+ export type ServiceBookingPackageBase = Omit<ServiceBookingAddOnExt, "id" | "serviceBookingDayId" | "serviceBookingDay" | "serviceBookingId" | "serviceBooking">;
5
6
  export type ServiceBookingFeeBase = Omit<ServiceBookingFeeExt, "id" | "serviceBookingDayId" | "serviceBookingDay" | "serviceBookingId" | "serviceBooking">;
6
7
  export type ServiceBookingPriceBreakdownBase = Omit<ServiceBookingPriceBreakdownExt, "id" | "serviceBookingDayId" | "serviceBookingDay">;
7
8
  export type ServiceBookingDayBase = Omit<ServiceBookingDayExt, "id" | "serviceBookingRequestId" | "serviceBookingRequest">;
8
9
  export type ServiceBookingBase = Pick<ServiceBookingExt, "bookedDays" | "timezone" | "additionalFees">;
10
+ export type ServiceBookingRequiredData = MakeNullablePropsOptional<MakeOptional<ServiceBookingExt, "id" | "isVendorBid" | "bashEventId" | "vendorEventDetails" | "serviceId" | "service" | "forUserId" | "forUser" | "creatorId" | "creator" | "checkout">>;
9
11
  export type ServiceBookingAddonBaseT = ServiceBookingAddOnBase;
10
12
  export type ServiceBookingPackageBaseT = ServiceBookingPackageBase;
11
13
  export type ServiceBookingFeeBaseT = ServiceBookingFeeBase;
@@ -1 +1 @@
1
- {"version":3,"file":"serviceBookingTypes.d.ts","sourceRoot":"","sources":["../../../src/utils/service/serviceBookingTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,+BAA+B,EAC/B,oBAAoB,EAGpB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,sBAAsB,EACtB,IAAI,GAAG,qBAAqB,GAAG,mBAAmB,CACnD,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,sBAAsB,EACtB,IAAI,GAAG,qBAAqB,GAAG,mBAAmB,CACnD,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,oBAAoB,EAClB,IAAI,GACJ,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,CACnB,CAAC;AACF,MAAM,MAAM,gCAAgC,GAAG,IAAI,CACjD,+BAA+B,EAC/B,IAAI,GAAG,qBAAqB,GAAG,mBAAmB,CACnD,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,oBAAoB,EACpB,IAAI,GAAG,yBAAyB,GAAG,uBAAuB,CAC3D,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,iBAAiB,EACjB,YAAY,GAAG,UAAU,GAAG,gBAAgB,CAC7C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AAC/D,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,CAAC;AACnE,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAC3D,MAAM,MAAM,iCAAiC,GAAG,IAAI,CAClD,gCAAgC,EAChC,WAAW,GAAG,SAAS,CACxB,GAAG;IACF,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,qBAAqB,EACrB,WAAW,GAAG,SAAS,CACxB,GAAG;IACF,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"serviceBookingTypes.d.ts","sourceRoot":"","sources":["../../../src/utils/service/serviceBookingTypes.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,+BAA+B,EAC/B,oBAAoB,EAGpB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEvE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,sBAAsB,EACpB,IAAI,GACJ,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,CACnB,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,sBAAsB,EACpB,IAAI,GACJ,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,CACnB,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,oBAAoB,EAClB,IAAI,GACJ,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,CACnB,CAAC;AACF,MAAM,MAAM,gCAAgC,GAAG,IAAI,CACjD,+BAA+B,EAC/B,IAAI,GAAG,qBAAqB,GAAG,mBAAmB,CACnD,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,oBAAoB,EACpB,IAAI,GAAG,yBAAyB,GAAG,uBAAuB,CAC3D,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,iBAAiB,EACjB,YAAY,GAAG,UAAU,GAAG,gBAAgB,CAC7C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,CAChE,YAAY,CACV,iBAAiB,EACf,IAAI,GACJ,aAAa,GACb,aAAa,GACb,oBAAoB,GACpB,WAAW,GACX,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,GACX,SAAS,GACT,UAAU,CACb,CACF,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AAC/D,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,CAAC;AACnE,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAC3D,MAAM,MAAM,iCAAiC,GAAG,IAAI,CAClD,gCAAgC,EAChC,WAAW,GAAG,SAAS,CACxB,GAAG;IACF,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,qBAAqB,EACrB,WAAW,GAAG,SAAS,CACxB,GAAG;IACF,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ticketListUtils.d.ts","sourceRoot":"","sources":["../../src/utils/ticketListUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EAKvB,MAAM,gBAAgB,CAAC;AAIxB;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,GAAG,MAAM,CAuC5F;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAmCtG"}
1
+ {"version":3,"file":"ticketListUtils.d.ts","sourceRoot":"","sources":["../../src/utils/ticketListUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EAKvB,MAAM,gBAAgB,CAAC;AAQxB;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,GAChD,MAAM,CAoCR;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,GACpB,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,CA2CvC"}
@@ -1,6 +1,6 @@
1
1
  import { DateTime } from "luxon";
2
- import { URL_PARAMS_NUMBER_OF_TICKETS_TICKETS_DATE_DELIM, URL_PARAMS_TICKET_LIST_DELIM, URL_PARAMS_TICKET_TIER_ID_NUMBER_OF_TICKETS_DATE_DELIM, URL_PARAMS_TICKETS_DATE_DELIM } from "../definitions";
3
- import { DATETIME_FORMAT_ISO_LIKE } from "./dateTimeUtils";
2
+ import { URL_PARAMS_NUMBER_OF_TICKETS_TICKETS_DATE_DELIM, URL_PARAMS_TICKET_LIST_DELIM, URL_PARAMS_TICKET_TIER_ID_NUMBER_OF_TICKETS_DATE_DELIM, URL_PARAMS_TICKETS_DATE_DELIM, } from "../definitions";
3
+ import { dateTimeFormat, dateTimeFromDate, } from "./luxonUtils";
4
4
  /**
5
5
  * Returns A string structured like: [ticketTierId]__[numberOfTickets];;[date]~~[numberOfTickets];;[date]~~,...
6
6
  * @param ticketList A map where the key is the ticketTierId
@@ -9,7 +9,9 @@ export function ticketListToString(ticketList) {
9
9
  const ticketListArr = [];
10
10
  for (const [ticketTierId, ticketListArgs] of ticketList.entries()) {
11
11
  let ticketsExist = true;
12
- const ticketArgs = [`${ticketTierId}${URL_PARAMS_TICKET_TIER_ID_NUMBER_OF_TICKETS_DATE_DELIM}`];
12
+ const ticketArgs = [
13
+ `${ticketTierId}${URL_PARAMS_TICKET_TIER_ID_NUMBER_OF_TICKETS_DATE_DELIM}`,
14
+ ];
13
15
  for (const ticketNumAndDates of ticketListArgs) {
14
16
  if (ticketNumAndDates.numberOfTickets > 0) {
15
17
  ticketsExist = true;
@@ -17,15 +19,9 @@ export function ticketListToString(ticketList) {
17
19
  let dateTimeStr = ticketNumAndDates.ticketDateTime;
18
20
  if (dateTimeStr) {
19
21
  // If it's already a string, try to parse it as DateTime and convert to ISO
20
- const dateTime = typeof dateTimeStr === 'string'
21
- ? DateTime.fromFormat(dateTimeStr, DATETIME_FORMAT_ISO_LIKE).isValid
22
- ? DateTime.fromFormat(dateTimeStr, DATETIME_FORMAT_ISO_LIKE)
23
- : DateTime.fromISO(dateTimeStr).isValid
24
- ? DateTime.fromISO(dateTimeStr)
25
- : DateTime.fromJSDate(new Date(dateTimeStr))
26
- : DateTime.fromJSDate(dateTimeStr);
22
+ const dateTime = dateTimeFromDate(dateTimeStr);
27
23
  if (dateTime.isValid) {
28
- dateTimeStr = dateTime.toISO() || dateTimeStr;
24
+ dateTimeStr = dateTimeFormat(dateTime) || dateTimeStr;
29
25
  }
30
26
  }
31
27
  ticketArgs.push(`${ticketNumAndDates.numberOfTickets}${URL_PARAMS_TICKETS_DATE_DELIM}${dateTimeStr}`);
@@ -56,7 +52,8 @@ export function ticketListStrToTicketList(ticketListStr) {
56
52
  throw new Error(`Could not parse ticketListStr. Maybe it is just an amount?`);
57
53
  }
58
54
  // ~~[numberOfTickets];;[date]~~[numberOfTickets];;[date]~~...
59
- const ticketNumAndDates = ticketNumAndDatesStr.split(URL_PARAMS_NUMBER_OF_TICKETS_TICKETS_DATE_DELIM)
55
+ const ticketNumAndDates = ticketNumAndDatesStr
56
+ .split(URL_PARAMS_NUMBER_OF_TICKETS_TICKETS_DATE_DELIM)
60
57
  .filter((ticketNumAndDateStr) => !!ticketNumAndDateStr);
61
58
  for (const ticketNumAndDateStr of ticketNumAndDates) {
62
59
  // [numberOfTickets];;[date]
@@ -64,7 +61,7 @@ export function ticketListStrToTicketList(ticketListStr) {
64
61
  const ticketDateTime = DateTime.fromISO(ticketDateTimeStr);
65
62
  let ticketDateTimeFormattedStr = undefined;
66
63
  if (ticketDateTime.isValid) {
67
- ticketDateTimeFormattedStr = ticketDateTime.toFormat(DATETIME_FORMAT_ISO_LIKE);
64
+ ticketDateTimeFormattedStr = dateTimeFormat(ticketDateTime);
68
65
  }
69
66
  ticketNumAndDatesArr.push({
70
67
  numberOfTickets: parseInt(numberOfTickets),
@@ -1 +1 @@
1
- {"version":3,"file":"ticketListUtils.js","sourceRoot":"","sources":["../../src/utils/ticketListUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticketListUtils.js","sourceRoot":"","sources":["../../src/utils/ticketListUtils.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,11 @@ export type ValueOf<T> = T[keyof T];
2
2
  export type UnionFromArray<T extends ReadonlyArray<any>> = T[number];
3
3
  export type RemoveCommonProperties<T, U> = keyof (Omit<T, keyof U> & Omit<U, keyof T>);
4
4
  export type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
5
+ export type MakeNullablePropsOptional<T> = {
6
+ [K in keyof T as null extends T[K] ? K : never]?: Exclude<T[K], undefined> | undefined;
7
+ } & {
8
+ [K in keyof T as null extends T[K] ? never : K]: T[K];
9
+ };
5
10
  export type MakeRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
6
11
  export type DeepPartial<T> = T extends Function ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends object ? {
7
12
  [P in keyof T]?: DeepPartial<T[P]>;
@@ -1 +1 @@
1
- {"version":3,"file":"typeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/typeUtils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AACrE,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAChE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAEpB,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEtB,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACzD,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvB,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB,CAAC,SAAS,QAAQ,GACd,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,MAAM,GAChB;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,CAAC,CAAC;AAEV,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAGlD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,IAAI,EAAE,CAAC,EAAE,GACR,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAKjB"}
1
+ {"version":3,"file":"typeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/typeUtils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AACrE,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAChE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAEpB,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEtB,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI;KACxC,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GACxB,SAAS;CACd,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACzD,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvB,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,GAC3C,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,MAAM,GAChB;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,CAAC,CAAC;AAEN,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAGlD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,IAAI,EAAE,CAAC,EAAE,GACR,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAKjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"typeUtils.js","sourceRoot":"","sources":["../../src/utils/typeUtils.ts"],"names":[],"mappings":"AAsBA,sCAAsC;AACtC,MAAM,UAAU,mBAAmB,CACjC,IAAS;IAET,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAqB,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"typeUtils.js","sourceRoot":"","sources":["../../src/utils/typeUtils.ts"],"names":[],"mappings":"AA6BA,sCAAsC;AACtC,MAAM,UAAU,mBAAmB,CACjC,IAAS;IAET,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAqB,CAAC,CAAC;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "30.57.0",
3
+ "version": "30.59.0",
4
4
  "description": "Common data and scripts to use on the frontend and backend",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -372,6 +372,11 @@ model BashEvent {
372
372
  venue Venue? @relation(fields: [venueId], references: [id])
373
373
  userPromoCodeRedemption UserPromoCodeRedemption[]
374
374
  averageRating Float? @default(0)
375
+ allowDonations Boolean? @default(true)
376
+ suggestedDonationAmount Int? // stored in cents like other prices
377
+ donationDetails String?
378
+ absorbDonationFees Boolean @default(false)
379
+ absorbTicketFees Boolean @default(false)
375
380
  serviceBookings ServiceBooking[] // Add this field to create the reverse relation
376
381
  userReport UserReport[]
377
382
  favoritedBy UserFavorite[]
@@ -499,35 +504,6 @@ model TicketMetadata {
499
504
  @@index([ticketId])
500
505
  }
501
506
 
502
- // enum BookingStatus {
503
- // Cancelled
504
- // Completed
505
- // Missed
506
- // }
507
-
508
- // model Booking {
509
- // id String @id @default(cuid())
510
- // serviceId String
511
- // service Service @relation(fields: [serviceId], references: [id])
512
- // validDate DateTime?
513
- // forUserId String?
514
- // forUser User? @relation(fields: [forUserId], references: [id])
515
- // fullName String?
516
- // email String?
517
- // paidOn DateTime?
518
- // requireDeposit Boolean?
519
- // status BookingStatus?
520
- // geoFenceCheckInUnnecessary Boolean?
521
- // checkedInAt DateTime?
522
- // checkedOutAt DateTime?
523
- // checkoutId String?
524
- // checkout Checkout? @relation(fields: [checkoutId], references: [id])
525
-
526
- // @@index([serviceId])
527
- // @@index([forUserId])
528
- // @@index([checkoutId])
529
- // }
530
-
531
507
  model unusedModelButNeededForSomeTypesToBeDefinedForTypescript {
532
508
  id String @id @default(cuid())
533
509
  doNotUseVibeEnum BashEventVibeTags @default(Wild)
@@ -1530,7 +1506,6 @@ model Service {
1530
1506
 
1531
1507
  bashesNotInterestedIn BashEventType[]
1532
1508
  customExcludedEventTypes String[] @default([])
1533
- // bookings Booking[]
1534
1509
  media Media[]
1535
1510
  serviceLinks ServiceLink[]
1536
1511
 
@@ -3112,17 +3087,17 @@ model ServiceRatesAssociation {
3112
3087
  // Missed
3113
3088
  // }
3114
3089
 
3090
+ //Fees can either apply to entire booking or just a single day
3115
3091
  enum ServiceBookingFeeType {
3116
- // AddOn
3117
- // Package
3118
3092
  CleaningFee
3119
3093
  ProcessingFee
3094
+ // FlatRate
3120
3095
  }
3121
3096
 
3097
+ //Only where billed by time
3122
3098
  enum ServiceRatePricingType {
3123
3099
  Hourly
3124
3100
  Daily
3125
- Flat
3126
3101
  }
3127
3102
 
3128
3103
  enum ServiceBookingStatus {
@@ -3138,11 +3113,20 @@ enum ServiceBookingType {
3138
3113
  Instant
3139
3114
  }
3140
3115
 
3116
+ // User options for rates
3117
+ enum ServiceBookingRateOption {
3118
+ TimeBased
3119
+ FlatRate
3120
+ }
3121
+
3141
3122
  model ServiceBookingAddOn {
3142
3123
  id String @id @default(cuid())
3143
3124
 
3144
- serviceBookingDay ServiceBookingDay @relation(fields: [serviceBookingDayId], references: [id], onDelete: Cascade)
3145
- serviceBookingDayId String
3125
+ serviceBookingDay ServiceBookingDay? @relation(fields: [serviceBookingDayId], references: [id], onDelete: Cascade)
3126
+ serviceBookingDayId String?
3127
+
3128
+ serviceBooking ServiceBooking? @relation(fields: [serviceBookingId], references: [id])
3129
+ serviceBookingId String?
3146
3130
 
3147
3131
  addOnId String
3148
3132
  addOn ServiceAddon @relation(fields: [addOnId], references: [id])
@@ -3154,8 +3138,11 @@ model ServiceBookingAddOn {
3154
3138
  model ServiceBookingPackage {
3155
3139
  id String @id @default(cuid())
3156
3140
 
3157
- serviceBookingDay ServiceBookingDay @relation(fields: [serviceBookingDayId], references: [id], onDelete: Cascade)
3158
- serviceBookingDayId String
3141
+ serviceBookingDay ServiceBookingDay? @relation(fields: [serviceBookingDayId], references: [id], onDelete: Cascade)
3142
+ serviceBookingDayId String?
3143
+
3144
+ serviceBooking ServiceBooking? @relation(fields: [serviceBookingId], references: [id])
3145
+ serviceBookingId String?
3159
3146
 
3160
3147
  packageId String
3161
3148
  package ServicePackage @relation(fields: [packageId], references: [id])
@@ -3214,7 +3201,8 @@ model ServiceBookingDay {
3214
3201
  priceBreakdown ServiceBookingPriceBreakdown[]
3215
3202
  fees ServiceBookingFee[]
3216
3203
 
3217
- totalBeforeTaxesCents Int
3204
+ subtotalBeforeTaxesCents Int @default(0) //subtotal before taxes, fees, and discounts
3205
+ totalBeforeTaxesCents Int
3218
3206
  }
3219
3207
 
3220
3208
  model ServiceBookingCheckout {
@@ -3250,11 +3238,15 @@ model ServiceBooking {
3250
3238
  forUserId String
3251
3239
  forUser User @relation("BookingForUser", fields: [forUserId], references: [id], onDelete: Restrict)
3252
3240
 
3253
- bookedDays ServiceBookingDay[]
3241
+ bookedDays ServiceBookingDay[]
3242
+ daysTotalATBCents Int //ATB=At Time of Booking
3254
3243
 
3255
3244
  serviceId String
3256
3245
  service Service @relation(fields: [serviceId], references: [id], onDelete: Restrict)
3257
3246
 
3247
+ rateOption ServiceBookingRateOption @default(TimeBased)
3248
+ flatRateCents Int? //if flat rate is selected, this is the total flat rate for the booking
3249
+
3258
3250
  status ServiceBookingStatus @default(Pending)
3259
3251
  bookingType ServiceBookingType @default(Request)
3260
3252
 
@@ -3273,8 +3265,11 @@ model ServiceBooking {
3273
3265
 
3274
3266
  additionalFees ServiceBookingFee[]
3275
3267
 
3276
- daysTotalATBCents Int //ATB=At Time of Booking
3277
- totalATBCents Int
3268
+ addOns ServiceBookingAddOn[] // for services that aren't billed by time, but have add-ons
3269
+ packages ServiceBookingPackage[] // for services that aren't billed by time, but have packages
3270
+
3271
+ totalATBCents Int
3272
+ subtotalATBCents Int @default(0) //subtotal before taxes, fees, and discounts
3278
3273
 
3279
3274
  bashEventId String?
3280
3275
  bashEvent BashEvent? @relation(fields: [bashEventId], references: [id])
@@ -433,6 +433,9 @@ export interface ServiceBookingExt extends ServiceBooking {
433
433
  bookedDays: ServiceBookingDayExt[];
434
434
  additionalFees: ServiceBookingFeeExt[];
435
435
 
436
+ addOns: ServiceBookingAddOnExt[];
437
+ packages: ServiceBookingPackageExt[];
438
+
436
439
  creator: PublicUser;
437
440
  forUser: PublicUser;
438
441
  service: ServiceExt;
@@ -499,6 +502,12 @@ export const SERVICE_BOOKING_PUBLIC_DATA_TO_INCLUDE = {
499
502
  bashEvent: undefined, // Remove circular reference
500
503
  },
501
504
  },
505
+ addOns: {
506
+ include: SERVICE_BOOKING_ADDON_DATA_TO_INCLUDE,
507
+ },
508
+ packages: {
509
+ include: SERVICE_BOOKING_PACKAGE_DATA_TO_INCLUDE,
510
+ },
502
511
  additionalFees: true,
503
512
  } satisfies Prisma.ServiceBookingInclude;
504
513