@driveflux/api-functions 1.0.52 → 1.0.54

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 (54) hide show
  1. package/dist/auth/confirm.js +29 -24
  2. package/dist/auth/emails.js +13 -12
  3. package/dist/auth/formatter.js +5 -5
  4. package/dist/auth/otp.js +50 -66
  5. package/dist/auth/register.js +34 -42
  6. package/dist/auth/tokens.js +55 -58
  7. package/dist/auth/verifications.js +52 -53
  8. package/dist/constants.js +1 -0
  9. package/dist/create-logger.js +2 -1
  10. package/dist/mailjet/calls/manage-contacts-in-list.js +6 -5
  11. package/dist/mailjet/calls/manage-subscription-status.js +5 -4
  12. package/dist/mailjet/calls/request-service.js +6 -7
  13. package/dist/mailjet/refresh-email-preferences.js +12 -11
  14. package/dist/mailjet/set-contact.js +12 -11
  15. package/dist/mailjet/types.js +2 -1
  16. package/dist/mailjet/utils/convert-to-array.js +6 -8
  17. package/dist/mailjet/utils/extract-email-preferences.js +15 -14
  18. package/dist/mailjet/utils/lists.js +8 -7
  19. package/dist/mailjet/utils/update-email-references.js +15 -16
  20. package/dist/notion/client.js +19 -22
  21. package/dist/notion/helpful.js +9 -6
  22. package/dist/notion/schemas/block.js +48 -42
  23. package/dist/notion/schemas/common.js +14 -9
  24. package/dist/notion/schemas/database.js +60 -62
  25. package/dist/notion/schemas/emoji.js +2 -1
  26. package/dist/notion/schemas/file.js +9 -9
  27. package/dist/notion/schemas/kb.js +6 -5
  28. package/dist/notion/schemas/page.js +61 -72
  29. package/dist/notion/schemas/parent.js +5 -4
  30. package/dist/notion/schemas/user.js +19 -18
  31. package/dist/reservation/agree.d.ts.map +1 -1
  32. package/dist/reservation/agree.js +8 -6
  33. package/dist/reservation/agree.js.map +1 -1
  34. package/dist/reservation/checks.d.ts.map +1 -1
  35. package/dist/reservation/checks.js +4 -6
  36. package/dist/reservation/checks.js.map +1 -1
  37. package/dist/reservation/display-vehicle.js +71 -65
  38. package/dist/reservation/display-vehicle.js.map +1 -1
  39. package/dist/reservation/ensure-user-billing-address.js +11 -9
  40. package/dist/reservation/fetch-or-create.js +54 -48
  41. package/dist/reservation/invoice.js +78 -70
  42. package/dist/reservation/payer.js +6 -5
  43. package/dist/reservation/payment-intent-sync.js +6 -4
  44. package/dist/reservation/reserve.d.ts.map +1 -1
  45. package/dist/reservation/reserve.js +12 -7
  46. package/dist/reservation/reserve.js.map +1 -1
  47. package/dist/reservation/types.js +2 -1
  48. package/dist/reservation/vehicle.js +16 -13
  49. package/dist/slack.js +29 -24
  50. package/dist/validation.js +79 -77
  51. package/dist/vehicle/vehicle-pricing/constants.js +19 -22
  52. package/dist/vehicle/vehicle-pricing/index.js +42 -28
  53. package/dist/vehicle/vehicle-pricing/types.js +2 -1
  54. package/package.json +10 -10
@@ -1,75 +1,73 @@
1
1
  import { config } from '@driveflux/config/backend';
2
- import { prisma } from '@driveflux/db';
2
+ import { prisma, } from '@driveflux/db';
3
3
  import { generateId } from '@driveflux/db/id';
4
4
  import { createPricingController } from '@driveflux/db/models/vehicle';
5
- import { getFluxExcessMileage, getFluxPiceMatrix, getHostExcessMileage, getHostsMatrix, getRecommendedMotorcycleDeposit, getStartFeeMatrix } from '../vehicle/vehicle-pricing/index.js';
6
- export const fetchDisplayVehicle = async (displayVehicle)=>{
7
- return typeof displayVehicle === 'string' ? await prisma.displayVehicle.findFirst({
8
- where: {
9
- id: displayVehicle
10
- }
11
- }) : displayVehicle;
5
+ import { getFluxExcessMileage, getFluxPiceMatrix, getHostExcessMileage, getHostsMatrix, getRecommendedMotorcycleDeposit, getStartFeeMatrix, } from '../vehicle/vehicle-pricing/index.js';
6
+ export const fetchDisplayVehicle = async (displayVehicle) => {
7
+ return typeof displayVehicle === 'string'
8
+ ? await prisma.displayVehicle.findFirst({ where: { id: displayVehicle } })
9
+ : displayVehicle;
12
10
  };
13
- export const createVehicleFromDisplayVehicle = async (displayVehicle, selectedColor)=>{
11
+ export const createVehicleFromDisplayVehicle = async (displayVehicle, selectedColor) => {
14
12
  const dv = await fetchDisplayVehicle(displayVehicle);
15
- if (!dv || typeof dv !== 'object') return;
16
- if (!dv.details) return;
17
- const mainImage = dv.images.main.find((m)=>m.variant === selectedColor)?.url;
13
+ if (!dv || typeof dv !== 'object')
14
+ return;
15
+ if (!dv.details)
16
+ return;
17
+ const mainImage = dv.images.main.find((m) => m.variant === selectedColor)?.url;
18
18
  const vehicleData = {
19
19
  id: generateId('Vehicle'),
20
20
  ...transformBasicVehicleData(dv),
21
21
  images: [
22
- ...mainImage ? [
23
- transfromSingleImage(mainImage)
24
- ] : [],
25
- ...transformImages(dv.images)
22
+ ...(mainImage ? [transfromSingleImage(mainImage)] : []),
23
+ ...transformImages(dv.images),
26
24
  ],
27
25
  ...transformBasePrices(dv.pricing),
28
26
  pricing: transformPriceMatrix(dv.type, dv.pricing),
29
27
  details: transformDetails(dv.details, selectedColor),
30
28
  host: {
31
29
  connect: {
32
- id: dv.defaultHostId
33
- }
30
+ id: dv.defaultHostId,
31
+ },
34
32
  },
35
33
  displayVehicle: {
36
34
  connect: {
37
- id: dv.id
38
- }
39
- }
35
+ id: dv.id,
36
+ },
37
+ },
40
38
  };
41
39
  return await prisma.vehicle.create({
42
40
  data: vehicleData,
43
41
  include: {
44
- host: true
45
- }
42
+ host: true,
43
+ },
46
44
  });
47
45
  };
48
- export const transfromVehicleDisplayToVehicle = async (displayVehicle, selectedColor)=>{
46
+ export const transfromVehicleDisplayToVehicle = async (displayVehicle, selectedColor) => {
49
47
  const dv = await fetchDisplayVehicle(displayVehicle);
50
- if (!dv || typeof dv !== 'object') return;
51
- if (!dv.details) return;
52
- const mainImage = dv.images.main.find((m)=>m.variant === selectedColor)?.url;
48
+ if (!dv || typeof dv !== 'object')
49
+ return;
50
+ if (!dv.details)
51
+ return;
52
+ const mainImage = dv.images.main.find((m) => m.variant === selectedColor)?.url;
53
53
  return {
54
54
  id: dv.id,
55
55
  ...transformBasicVehicleData(dv),
56
56
  images: [
57
- ...mainImage ? [
58
- transfromSingleImage(mainImage)
59
- ] : [],
60
- ...transformImages(dv.images)
57
+ ...(mainImage ? [transfromSingleImage(mainImage)] : []),
58
+ ...transformImages(dv.images),
61
59
  ],
62
60
  ...transformBasePrices(dv.pricing),
63
61
  pricing: transformPriceMatrix(dv.type, dv.pricing),
64
62
  details: transformDetails(dv.details, selectedColor),
65
63
  host: {
66
64
  address: {
67
- state: 'Kuala Lumpur'
68
- }
69
- }
65
+ state: 'Kuala Lumpur',
66
+ },
67
+ },
70
68
  };
71
69
  };
72
- export const transformBasicVehicleData = (dv)=>{
70
+ export const transformBasicVehicleData = (dv) => {
73
71
  return {
74
72
  registrationNumber: null,
75
73
  featured: false,
@@ -87,17 +85,17 @@ export const transformBasicVehicleData = (dv)=>{
87
85
  type: dv.type,
88
86
  niceName: `${dv.make} ${dv.vehicleModel} ${dv.variant} ${dv.year}`,
89
87
  niceNameShort: `${dv.make} ${dv.vehicleModel}`,
90
- appliedCoupon: dv.appliedCoupon
88
+ appliedCoupon: dv.appliedCoupon,
91
89
  };
92
90
  };
93
- export const transformImages = (images)=>{
91
+ export const transformImages = (images) => {
94
92
  return [
95
93
  transfromSingleImage(images.exterior[0].url, 'exterior'),
96
94
  transfromSingleImage(images.interior[0].url, 'interior'),
97
- ...images.gallery.map((i)=>transfromSingleImage(i.url))
95
+ ...images.gallery.map((i) => transfromSingleImage(i.url)),
98
96
  ];
99
97
  };
100
- const transfromSingleImage = (imageUrl, inspectionType)=>{
98
+ const transfromSingleImage = (imageUrl, inspectionType) => {
101
99
  return {
102
100
  default: imageUrl,
103
101
  blurBase64: null,
@@ -108,20 +106,20 @@ const transfromSingleImage = (imageUrl, inspectionType)=>{
108
106
  description: null,
109
107
  inspection: !!inspectionType,
110
108
  inspectionType: inspectionType || null,
111
- notActualPhoto: true
109
+ notActualPhoto: true,
112
110
  };
113
111
  };
114
- const transformBasePrices = (pricing)=>{
112
+ const transformBasePrices = (pricing) => {
115
113
  return {
116
114
  basePrice: pricing.matrix.plan36.lite,
117
115
  basePricePlan1: pricing.matrix.plan1.lite,
118
116
  basePricePlan12: pricing.matrix.plan12.lite,
119
117
  basePricePlan24: pricing.matrix.plan24.lite,
120
118
  basePricePlan36: pricing.matrix.plan36.lite,
121
- basePricePlan60: pricing.matrix.plan60.lite
119
+ basePricePlan60: pricing.matrix.plan60.lite,
122
120
  };
123
121
  };
124
- const transformPriceMatrix = (vehicleType, pricing)=>{
122
+ const transformPriceMatrix = (vehicleType, pricing) => {
125
123
  const baseline = pricing?.matrix.plan36.lite;
126
124
  const ultraTier = 'tier1';
127
125
  const fluxPriceCoefficient = 25;
@@ -134,14 +132,16 @@ const transformPriceMatrix = (vehicleType, pricing)=>{
134
132
  const { availablePlans, availableMileagePackages } = getNonZeroKeys(priceMatrix);
135
133
  const pricingController = createPricingController({
136
134
  coefficient: fluxPriceCoefficient,
137
- vehicleType
135
+ vehicleType,
138
136
  });
139
137
  const startFeeMatrix = excludeServiceFeesFrom(getStartFeeMatrix(pricingController, baseline, flatPricing));
140
138
  const hostMatrix = excludeServiceFeesFrom(getHostsMatrix(pricingController, baseline, ultraTier, flatPricing));
141
139
  const hostExcessMileage = getHostExcessMileage(pricingController, baseline);
142
140
  const fluxPriceMatrix = excludeServiceFeesFrom(getFluxPiceMatrix(pricingController, vehicleType, baseline, hostMatrix, ultraTier, flatPricing));
143
141
  const fluxExcessMileage = getFluxExcessMileage(pricingController, baseline);
144
- const recommendedDeposit = pricing.refundableDeposit || vehicleType === 'motorcycle' ? getRecommendedMotorcycleDeposit(baseline) : null;
142
+ const recommendedDeposit = pricing.refundableDeposit || vehicleType === 'motorcycle'
143
+ ? getRecommendedMotorcycleDeposit(baseline)
144
+ : null;
145
145
  return {
146
146
  tmv,
147
147
  gfv,
@@ -160,31 +160,31 @@ const transformPriceMatrix = (vehicleType, pricing)=>{
160
160
  excessMileage: fluxExcessMileage,
161
161
  originalExcessMileage: fluxExcessMileage,
162
162
  matrixComments: null,
163
- add: null
163
+ add: null,
164
164
  },
165
165
  hostTake: {
166
166
  matrix: hostMatrix,
167
167
  originalMatrix: hostMatrix,
168
168
  excessMileage: hostExcessMileage,
169
169
  originalExcessMileage: hostExcessMileage,
170
- matrixComments: null
170
+ matrixComments: null,
171
171
  },
172
172
  startFee: {
173
173
  matrix: startFeeMatrix,
174
174
  originalMatrix: startFeeMatrix,
175
- matrixComments: null
176
- }
175
+ matrixComments: null,
176
+ },
177
177
  };
178
178
  };
179
- const getNonZeroKeys = (matrix)=>{
179
+ const getNonZeroKeys = (matrix) => {
180
180
  const planKeys = new Set();
181
181
  const mileageKeys = new Set();
182
- for (const [plan, mileageMap] of Object.entries(matrix)){
182
+ for (const [plan, mileageMap] of Object.entries(matrix)) {
183
183
  const entries = Object.entries(mileageMap ?? {});
184
- const hasNonZero = entries.some(([_, value])=>(value ?? 0) > 0);
184
+ const hasNonZero = entries.some(([_, value]) => (value ?? 0) > 0);
185
185
  if (hasNonZero) {
186
186
  planKeys.add(plan);
187
- for (const [mileage, value] of entries){
187
+ for (const [mileage, value] of entries) {
188
188
  if ((value ?? 0) > 0) {
189
189
  mileageKeys.add(mileage);
190
190
  }
@@ -193,20 +193,20 @@ const getNonZeroKeys = (matrix)=>{
193
193
  }
194
194
  return {
195
195
  availablePlans: Array.from(planKeys),
196
- availableMileagePackages: Array.from(mileageKeys)
196
+ availableMileagePackages: Array.from(mileageKeys),
197
197
  };
198
198
  };
199
- const _getInspection = ()=>{
199
+ const _getInspection = () => {
200
200
  return {
201
201
  exterior: 5,
202
202
  interior: 5,
203
203
  engine: 5,
204
204
  frame: 5,
205
205
  total: 5,
206
- comment: 'COMMENT HERE'
206
+ comment: 'COMMENT HERE',
207
207
  };
208
208
  };
209
- const transformDetails = (details, selectColor)=>{
209
+ const transformDetails = (details, selectColor) => {
210
210
  const color = selectColor || details.colors[0].name || '';
211
211
  return {
212
212
  numberOfSeats: details.numberOfSeats,
@@ -214,25 +214,31 @@ const transformDetails = (details, selectColor)=>{
214
214
  bodyType: details.bodyType,
215
215
  transmission: details.transmission,
216
216
  engineType: details.fuelType,
217
- engineCapacity: details.fuelType === 'electric' ? details.batteryCapacity : details.engineCapacity,
217
+ engineCapacity: details.fuelType === 'electric'
218
+ ? details.batteryCapacity
219
+ : details.engineCapacity,
218
220
  drivetrain: details.drivetrain,
219
221
  accelerationTo100km: details.accelerationTo100km,
220
222
  fuelConsumptionLitersPer100Km: details.fuelConsumptionLitersPer100Km,
221
223
  color,
222
224
  features: details.features,
223
- condition: 'new'
225
+ condition: 'new',
224
226
  };
225
227
  };
226
- const excludeServiceFeesFrom = (originalMatrix)=>{
228
+ const excludeServiceFeesFrom = (originalMatrix) => {
227
229
  const matrix = {};
228
- for (const [planKey, planValue] of Object.entries(originalMatrix)){
229
- if (!planValue) continue;
230
- if (!matrix[planKey]) matrix[planKey] = {};
231
- for (const [mileageKey, price] of Object.entries(planValue)){
230
+ for (const [planKey, planValue] of Object.entries(originalMatrix)) {
231
+ if (!planValue)
232
+ continue;
233
+ if (!matrix[planKey])
234
+ matrix[planKey] = {};
235
+ for (const [mileageKey, price] of Object.entries(planValue)) {
232
236
  if (typeof price === 'number') {
233
- matrix[planKey][mileageKey] = price / (1 + config.serviceRate);
237
+ matrix[planKey][mileageKey] =
238
+ price / (1 + config.taxRate);
234
239
  }
235
240
  }
236
241
  }
237
242
  return matrix;
238
243
  };
244
+ //# sourceMappingURL=display-vehicle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"display-vehicle.js","sourceRoot":"","sources":["../../src/reservation/display-vehicle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display-vehicle.js","sourceRoot":"","sources":["../../src/reservation/display-vehicle.ts"],"names":[],"mappings":"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"}
@@ -3,27 +3,29 @@ import { makeProblem, PROBLEM_INTERNAL } from '@driveflux/problem';
3
3
  import { Err, Ok } from '@driveflux/result';
4
4
  import { createScopedLogger } from '../create-logger.js';
5
5
  const log = createScopedLogger('reservation:ensure-user-billing-address');
6
- export const ensureUserBillingAddress = async (userOrBusiness, deliveryAddresses)=>{
6
+ export const ensureUserBillingAddress = async (userOrBusiness, deliveryAddresses) => {
7
7
  if (userOrBusiness.addresses?.billing) {
8
8
  return new Ok(userOrBusiness);
9
9
  }
10
10
  try {
11
11
  const fullQuery = {
12
- where: {
13
- id: userOrBusiness.id
14
- },
12
+ where: { id: userOrBusiness.id },
15
13
  data: {
16
14
  addresses: {
17
15
  home: deliveryAddresses.home,
18
- billing: deliveryAddresses.billing
19
- }
20
- }
16
+ billing: deliveryAddresses.billing,
17
+ },
18
+ },
21
19
  };
22
20
  // Use the delivery addresses
23
- const updatedUserOrBusiness = userOrBusiness.object === 'user' ? await prisma.user.update(fullQuery) : await prisma.business.update(fullQuery);
21
+ const updatedUserOrBusiness = userOrBusiness.object === 'user'
22
+ ? await prisma.user.update(fullQuery)
23
+ : await prisma.business.update(fullQuery);
24
24
  return new Ok(updatedUserOrBusiness);
25
- } catch (error) {
25
+ }
26
+ catch (error) {
26
27
  log.error(error, 'Failed to ensure user billing address');
27
28
  return new Err(makeProblem(PROBLEM_INTERNAL, 'Failed to ensure user billing address'));
28
29
  }
29
30
  };
31
+ //# sourceMappingURL=ensure-user-billing-address.js.map
@@ -1,11 +1,11 @@
1
- import { prisma } from '@driveflux/db';
1
+ import { prisma, } from '@driveflux/db';
2
2
  import { generateId } from '@driveflux/db/id';
3
3
  import { reportError } from '@driveflux/reporter';
4
4
  import { Ok } from '@driveflux/result';
5
5
  import { slackLater } from '../slack.js';
6
- import { createReservationInvoice, updateReservationInvoiceIfNeeded } from './invoice.js';
7
- export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
8
- const { subscribingUser, plan, mileagePackage, couponCode, referralCode, asBusiness, source, deliveryAddresses, deliveryDate, analytics, paymentIntentId, freeReservation, freeReservationReason } = body;
6
+ import { createReservationInvoice, updateReservationInvoiceIfNeeded, } from './invoice.js';
7
+ export const fetchOrCreateReservation = async ({ vehicle, payer, body, }) => {
8
+ const { subscribingUser, plan, mileagePackage, couponCode, referralCode, asBusiness, source, deliveryAddresses, deliveryDate, analytics, paymentIntentId, freeReservation, freeReservationReason, } = body;
9
9
  try {
10
10
  const previousReservation = await prisma.subscriptionReservation.findFirst({
11
11
  where: {
@@ -19,14 +19,14 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
19
19
  source,
20
20
  // If the subscription ID was populated, this means that this reservation was consumed into a subsription,
21
21
  // so we shouldn't re-use it
22
- subscription: null
22
+ subscription: null,
23
23
  },
24
24
  orderBy: {
25
- updatedAt: 'desc'
25
+ updatedAt: 'desc',
26
26
  },
27
27
  include: {
28
- invoice: true
29
- }
28
+ invoice: true,
29
+ },
30
30
  });
31
31
  if (previousReservation) {
32
32
  if (previousReservation.invoice.voided) {
@@ -39,7 +39,7 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
39
39
  'partiallyPaid',
40
40
  'partiallyRefunded',
41
41
  'refunded',
42
- 'pendingRefund'
42
+ 'pendingRefund',
43
43
  ];
44
44
  if (wrongStatuses.includes(previousReservation.invoice.status)) {
45
45
  const updatedReservation = await recreateReservationInvoiceAndUpdateReservation(previousReservation, body, vehicle, payer);
@@ -52,16 +52,16 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
52
52
  text: {
53
53
  type: 'plain_text',
54
54
  text: '‼️ Reservation invoice in wrong status',
55
- emoji: true
56
- }
55
+ emoji: true,
56
+ },
57
57
  },
58
58
  {
59
59
  type: 'section',
60
60
  text: {
61
61
  type: 'plain_text',
62
- text: `The reservation invoice ${previousReservation.invoice.id} was in a wrong status (${previousReservation.invoice.status}), it was discarded and a new invoice (${updatedReservation.val.id}) was created, however, investigate the issue.`
63
- }
64
- }
62
+ text: `The reservation invoice ${previousReservation.invoice.id} was in a wrong status (${previousReservation.invoice.status}), it was discarded and a new invoice (${updatedReservation.val.id}) was created, however, investigate the issue.`,
63
+ },
64
+ },
65
65
  ]);
66
66
  return updatedReservation;
67
67
  }
@@ -73,7 +73,8 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
73
73
  // Otherwise, we need to create a new reservation
74
74
  return new Ok(previousReservation);
75
75
  }
76
- } catch (error) {
76
+ }
77
+ catch (error) {
77
78
  // We couldn't fetch the reservation, so we create a new one and just log this
78
79
  await reportError(error);
79
80
  }
@@ -92,7 +93,7 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
92
93
  analytics,
93
94
  vehicle,
94
95
  payer,
95
- subscribingUser
96
+ subscribingUser,
96
97
  });
97
98
  if (invoiceResult.err) {
98
99
  return invoiceResult;
@@ -111,66 +112,70 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
111
112
  deliveryAddresses,
112
113
  deliveryDate,
113
114
  asBusiness,
114
- source
115
+ source,
115
116
  });
116
117
  return new Ok(reservation);
117
118
  };
118
- const createReservation = async ({ reservationId, invoiceId, subscribingUserId, vehicleId, businessId, plan, mileagePackage, couponCode, referralCode, analytics, deliveryAddresses, deliveryDate, asBusiness, source })=>{
119
+ const createReservation = async ({ reservationId, invoiceId, subscribingUserId, vehicleId, businessId, plan, mileagePackage, couponCode, referralCode, analytics, deliveryAddresses, deliveryDate, asBusiness, source, }) => {
119
120
  return await prisma.subscriptionReservation.create({
120
121
  data: {
121
122
  id: reservationId,
122
123
  invoice: {
123
124
  connect: {
124
- id: invoiceId
125
- }
125
+ id: invoiceId,
126
+ },
126
127
  },
127
128
  user: {
128
129
  connect: {
129
- id: subscribingUserId
130
- }
130
+ id: subscribingUserId,
131
+ },
131
132
  },
132
133
  vehicle: {
133
134
  connect: {
134
- id: vehicleId
135
- }
135
+ id: vehicleId,
136
+ },
136
137
  },
137
- ...businessId ? {
138
- business: {
139
- connect: {
140
- id: businessId
141
- }
138
+ ...(businessId
139
+ ? {
140
+ business: {
141
+ connect: {
142
+ id: businessId,
143
+ },
144
+ },
142
145
  }
143
- } : undefined,
146
+ : undefined),
144
147
  plan,
145
148
  mileagePackage,
146
149
  couponCode: couponCode,
147
150
  deliveryAddresses: deliveryAddresses,
148
151
  deliveryDate: deliveryDate,
149
- ...referralCode ? {
150
- referral: {
151
- connect: {
152
- id: referralCode
153
- }
152
+ ...(referralCode
153
+ ? {
154
+ referral: {
155
+ connect: {
156
+ id: referralCode,
157
+ },
158
+ },
154
159
  }
155
- } : undefined,
160
+ : undefined),
156
161
  asBusiness: !!asBusiness,
157
162
  source,
158
163
  metadata: {
159
- analytics
160
- }
164
+ analytics,
165
+ },
161
166
  },
162
167
  include: {
163
- invoice: true
164
- }
168
+ invoice: true,
169
+ },
165
170
  });
166
171
  };
167
- const recreateReservationInvoiceAndUpdateReservation = async (previousReservation, body, vehicle, payer)=>{
172
+ const recreateReservationInvoiceAndUpdateReservation = async (previousReservation, body, vehicle, payer) => {
168
173
  const invoiceResult = await createReservationInvoice({
169
174
  ...body,
170
175
  invoiceId: generateId('Invoice'),
171
176
  reservationId: previousReservation.id,
172
177
  vehicle,
173
- payer
178
+ payer,
174
179
  });
175
180
  if (!invoiceResult.ok) {
176
181
  return invoiceResult;
@@ -178,18 +183,19 @@ const recreateReservationInvoiceAndUpdateReservation = async (previousReservatio
178
183
  const invoice = invoiceResult.val;
179
184
  const updatedReservation = await prisma.subscriptionReservation.update({
180
185
  where: {
181
- id: previousReservation.id
186
+ id: previousReservation.id,
182
187
  },
183
188
  data: {
184
189
  invoice: {
185
190
  connect: {
186
- id: invoice.id
187
- }
188
- }
191
+ id: invoice.id,
192
+ },
193
+ },
189
194
  },
190
195
  include: {
191
- invoice: true
192
- }
196
+ invoice: true,
197
+ },
193
198
  });
194
199
  return new Ok(updatedReservation);
195
200
  };
201
+ //# sourceMappingURL=fetch-or-create.js.map