@bash-app/bash-common 30.56.0 → 30.58.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 +31 -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.56.0",
3
+ "version": "30.58.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",
@@ -499,35 +499,6 @@ model TicketMetadata {
499
499
  @@index([ticketId])
500
500
  }
501
501
 
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
502
  model unusedModelButNeededForSomeTypesToBeDefinedForTypescript {
532
503
  id String @id @default(cuid())
533
504
  doNotUseVibeEnum BashEventVibeTags @default(Wild)
@@ -1530,7 +1501,6 @@ model Service {
1530
1501
 
1531
1502
  bashesNotInterestedIn BashEventType[]
1532
1503
  customExcludedEventTypes String[] @default([])
1533
- // bookings Booking[]
1534
1504
  media Media[]
1535
1505
  serviceLinks ServiceLink[]
1536
1506
 
@@ -3112,17 +3082,17 @@ model ServiceRatesAssociation {
3112
3082
  // Missed
3113
3083
  // }
3114
3084
 
3085
+ //Fees can either apply to entire booking or just a single day
3115
3086
  enum ServiceBookingFeeType {
3116
- // AddOn
3117
- // Package
3118
3087
  CleaningFee
3119
3088
  ProcessingFee
3089
+ // FlatRate
3120
3090
  }
3121
3091
 
3092
+ //Only where billed by time
3122
3093
  enum ServiceRatePricingType {
3123
3094
  Hourly
3124
3095
  Daily
3125
- Flat
3126
3096
  }
3127
3097
 
3128
3098
  enum ServiceBookingStatus {
@@ -3138,11 +3108,20 @@ enum ServiceBookingType {
3138
3108
  Instant
3139
3109
  }
3140
3110
 
3111
+ // User options for rates
3112
+ enum ServiceBookingRateOption {
3113
+ TimeBased
3114
+ FlatRate
3115
+ }
3116
+
3141
3117
  model ServiceBookingAddOn {
3142
3118
  id String @id @default(cuid())
3143
3119
 
3144
- serviceBookingDay ServiceBookingDay @relation(fields: [serviceBookingDayId], references: [id], onDelete: Cascade)
3145
- serviceBookingDayId String
3120
+ serviceBookingDay ServiceBookingDay? @relation(fields: [serviceBookingDayId], references: [id], onDelete: Cascade)
3121
+ serviceBookingDayId String?
3122
+
3123
+ serviceBooking ServiceBooking? @relation(fields: [serviceBookingId], references: [id])
3124
+ serviceBookingId String?
3146
3125
 
3147
3126
  addOnId String
3148
3127
  addOn ServiceAddon @relation(fields: [addOnId], references: [id])
@@ -3154,8 +3133,11 @@ model ServiceBookingAddOn {
3154
3133
  model ServiceBookingPackage {
3155
3134
  id String @id @default(cuid())
3156
3135
 
3157
- serviceBookingDay ServiceBookingDay @relation(fields: [serviceBookingDayId], references: [id], onDelete: Cascade)
3158
- serviceBookingDayId String
3136
+ serviceBookingDay ServiceBookingDay? @relation(fields: [serviceBookingDayId], references: [id], onDelete: Cascade)
3137
+ serviceBookingDayId String?
3138
+
3139
+ serviceBooking ServiceBooking? @relation(fields: [serviceBookingId], references: [id])
3140
+ serviceBookingId String?
3159
3141
 
3160
3142
  packageId String
3161
3143
  package ServicePackage @relation(fields: [packageId], references: [id])
@@ -3214,7 +3196,8 @@ model ServiceBookingDay {
3214
3196
  priceBreakdown ServiceBookingPriceBreakdown[]
3215
3197
  fees ServiceBookingFee[]
3216
3198
 
3217
- totalBeforeTaxesCents Int
3199
+ subtotalBeforeTaxesCents Int @default(0) //subtotal before taxes, fees, and discounts
3200
+ totalBeforeTaxesCents Int
3218
3201
  }
3219
3202
 
3220
3203
  model ServiceBookingCheckout {
@@ -3250,11 +3233,15 @@ model ServiceBooking {
3250
3233
  forUserId String
3251
3234
  forUser User @relation("BookingForUser", fields: [forUserId], references: [id], onDelete: Restrict)
3252
3235
 
3253
- bookedDays ServiceBookingDay[]
3236
+ bookedDays ServiceBookingDay[]
3237
+ daysTotalATBCents Int //ATB=At Time of Booking
3254
3238
 
3255
3239
  serviceId String
3256
3240
  service Service @relation(fields: [serviceId], references: [id], onDelete: Restrict)
3257
3241
 
3242
+ rateOption ServiceBookingRateOption @default(TimeBased)
3243
+ flatRateCents Int? //if flat rate is selected, this is the total flat rate for the booking
3244
+
3258
3245
  status ServiceBookingStatus @default(Pending)
3259
3246
  bookingType ServiceBookingType @default(Request)
3260
3247
 
@@ -3273,8 +3260,11 @@ model ServiceBooking {
3273
3260
 
3274
3261
  additionalFees ServiceBookingFee[]
3275
3262
 
3276
- daysTotalATBCents Int //ATB=At Time of Booking
3277
- totalATBCents Int
3263
+ addOns ServiceBookingAddOn[] // for services that aren't billed by time, but have add-ons
3264
+ packages ServiceBookingPackage[] // for services that aren't billed by time, but have packages
3265
+
3266
+ totalATBCents Int
3267
+ subtotalATBCents Int @default(0) //subtotal before taxes, fees, and discounts
3278
3268
 
3279
3269
  bashEventId String?
3280
3270
  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