@driveflux/api-functions 0.0.7-next.4 → 0.0.7-next.40

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 (101) hide show
  1. package/dist/auth/confirm.js +24 -29
  2. package/dist/auth/emails.js +12 -13
  3. package/dist/auth/formatter.js +5 -5
  4. package/dist/auth/otp.js +66 -50
  5. package/dist/auth/register.d.ts +1 -1
  6. package/dist/auth/register.js +44 -36
  7. package/dist/auth/register.js.map +1 -1
  8. package/dist/auth/tokens.d.ts +3 -3
  9. package/dist/auth/tokens.js +58 -55
  10. package/dist/auth/verifications.js +53 -52
  11. package/dist/constants.js +0 -1
  12. package/dist/mailjet/calls/manage-contacts-in-list.d.ts +2 -2
  13. package/dist/mailjet/calls/manage-contacts-in-list.d.ts.map +1 -1
  14. package/dist/mailjet/calls/manage-contacts-in-list.js +7 -8
  15. package/dist/mailjet/calls/manage-contacts-in-list.js.map +1 -1
  16. package/dist/mailjet/calls/manage-subscription-status.d.ts +2 -2
  17. package/dist/mailjet/calls/manage-subscription-status.d.ts.map +1 -1
  18. package/dist/mailjet/calls/manage-subscription-status.js +6 -7
  19. package/dist/mailjet/calls/manage-subscription-status.js.map +1 -1
  20. package/dist/mailjet/calls/request-service.d.ts +1 -1
  21. package/dist/mailjet/calls/request-service.d.ts.map +1 -1
  22. package/dist/mailjet/calls/request-service.js +7 -6
  23. package/dist/mailjet/refresh-email-preferences.js +11 -12
  24. package/dist/mailjet/set-contact.d.ts +2 -2
  25. package/dist/mailjet/set-contact.d.ts.map +1 -1
  26. package/dist/mailjet/set-contact.js +14 -15
  27. package/dist/mailjet/set-contact.js.map +1 -1
  28. package/dist/mailjet/types.d.ts +2 -2
  29. package/dist/mailjet/types.d.ts.map +1 -1
  30. package/dist/mailjet/types.js +1 -2
  31. package/dist/mailjet/utils/convert-to-array.d.ts +1 -1
  32. package/dist/mailjet/utils/convert-to-array.d.ts.map +1 -1
  33. package/dist/mailjet/utils/convert-to-array.js +8 -6
  34. package/dist/mailjet/utils/extract-email-preferences.d.ts +1 -1
  35. package/dist/mailjet/utils/extract-email-preferences.d.ts.map +1 -1
  36. package/dist/mailjet/utils/extract-email-preferences.js +14 -15
  37. package/dist/mailjet/utils/lists.js +7 -8
  38. package/dist/mailjet/utils/update-email-references.d.ts +2 -2
  39. package/dist/mailjet/utils/update-email-references.d.ts.map +1 -1
  40. package/dist/mailjet/utils/update-email-references.js +16 -15
  41. package/dist/mailjet/utils/update-email-references.js.map +1 -1
  42. package/dist/notion/client.d.ts.map +1 -1
  43. package/dist/notion/client.js +24 -20
  44. package/dist/notion/client.js.map +1 -1
  45. package/dist/notion/helpful.js +6 -9
  46. package/dist/notion/schemas/block.js +42 -48
  47. package/dist/notion/schemas/common.js +9 -14
  48. package/dist/notion/schemas/database.d.ts +1 -1
  49. package/dist/notion/schemas/database.js +62 -60
  50. package/dist/notion/schemas/emoji.js +1 -2
  51. package/dist/notion/schemas/file.js +9 -9
  52. package/dist/notion/schemas/kb.js +5 -6
  53. package/dist/notion/schemas/page.d.ts +1 -1
  54. package/dist/notion/schemas/page.js +72 -61
  55. package/dist/notion/schemas/parent.js +4 -5
  56. package/dist/notion/schemas/user.js +18 -19
  57. package/dist/reservation/agree.d.ts +1 -1
  58. package/dist/reservation/agree.d.ts.map +1 -1
  59. package/dist/reservation/agree.js +6 -7
  60. package/dist/reservation/checks.d.ts +1 -1
  61. package/dist/reservation/checks.d.ts.map +1 -1
  62. package/dist/reservation/checks.js +3 -4
  63. package/dist/reservation/display-vehicle.d.ts +16 -16
  64. package/dist/reservation/display-vehicle.js +65 -71
  65. package/dist/reservation/display-vehicle.js.map +1 -1
  66. package/dist/reservation/fetch-or-create.d.ts +1 -1
  67. package/dist/reservation/fetch-or-create.d.ts.map +1 -1
  68. package/dist/reservation/fetch-or-create.js +51 -55
  69. package/dist/reservation/fetch-or-create.js.map +1 -1
  70. package/dist/reservation/invoice.d.ts +3 -2
  71. package/dist/reservation/invoice.d.ts.map +1 -1
  72. package/dist/reservation/invoice.js +64 -76
  73. package/dist/reservation/invoice.js.map +1 -1
  74. package/dist/reservation/payer.d.ts +1 -1
  75. package/dist/reservation/payer.d.ts.map +1 -1
  76. package/dist/reservation/payer.js +5 -6
  77. package/dist/reservation/reserve.d.ts +1 -1
  78. package/dist/reservation/reserve.d.ts.map +1 -1
  79. package/dist/reservation/reserve.js +8 -9
  80. package/dist/reservation/reserve.js.map +1 -1
  81. package/dist/reservation/types.js +1 -2
  82. package/dist/reservation/vehicle.d.ts +1 -1
  83. package/dist/reservation/vehicle.d.ts.map +1 -1
  84. package/dist/reservation/vehicle.js +15 -18
  85. package/dist/reservation/vehicle.js.map +1 -1
  86. package/dist/slack.d.ts +2 -2
  87. package/dist/slack.d.ts.map +1 -1
  88. package/dist/slack.js +24 -29
  89. package/dist/validation.d.ts +4 -4
  90. package/dist/validation.d.ts.map +1 -1
  91. package/dist/validation.js +77 -71
  92. package/dist/validation.js.map +1 -1
  93. package/dist/vehicle/vehicle-pricing/constants.d.ts +1 -1
  94. package/dist/vehicle/vehicle-pricing/constants.d.ts.map +1 -1
  95. package/dist/vehicle/vehicle-pricing/constants.js +22 -19
  96. package/dist/vehicle/vehicle-pricing/index.d.ts +1 -1
  97. package/dist/vehicle/vehicle-pricing/index.d.ts.map +1 -1
  98. package/dist/vehicle/vehicle-pricing/index.js +30 -44
  99. package/dist/vehicle/vehicle-pricing/index.js.map +1 -1
  100. package/dist/vehicle/vehicle-pricing/types.js +1 -2
  101. package/package.json +28 -28
@@ -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
- import { slackLater } from '../slack';
6
- import { createReservationInvoice, updateReservationInvoiceIfNeeded, } from './invoice';
7
- export const fetchOrCreateReservation = async ({ vehicle, payer, body, }) => {
8
- const { subscribingUser, plan, mileagePackage, couponCode, referralCode, asBusiness, source, deliveryAddresses, deliveryDate, analytics, paymentIntentId, freeReservation, freeReservationReason, } = body;
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;
9
9
  try {
10
10
  const previousReservation = await prisma.subscriptionReservation.findFirst({
11
11
  where: {
@@ -19,10 +19,10 @@ 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
28
  invoice: {
@@ -37,10 +37,10 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body, }) => {
37
37
  status: true,
38
38
  lockedAt: true,
39
39
  unlockAt: true,
40
- locked: true,
41
- },
42
- },
43
- },
40
+ locked: true
41
+ }
42
+ }
43
+ }
44
44
  });
45
45
  if (previousReservation) {
46
46
  if (previousReservation.invoice.voided) {
@@ -53,7 +53,7 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body, }) => {
53
53
  'partiallyPaid',
54
54
  'partiallyRefunded',
55
55
  'refunded',
56
- 'pendingRefund',
56
+ 'pendingRefund'
57
57
  ];
58
58
  if (wrongStatuses.includes(previousReservation.invoice.status)) {
59
59
  const updatedReservation = await recreateReservationInvoiceAndUpdateReservation(previousReservation, body, vehicle, payer);
@@ -66,16 +66,16 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body, }) => {
66
66
  text: {
67
67
  type: 'plain_text',
68
68
  text: '‼️ Reservation invoice in wrong status',
69
- emoji: true,
70
- },
69
+ emoji: true
70
+ }
71
71
  },
72
72
  {
73
73
  type: 'section',
74
74
  text: {
75
75
  type: 'plain_text',
76
- 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.`,
77
- },
78
- },
76
+ 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.`
77
+ }
78
+ }
79
79
  ]);
80
80
  return updatedReservation;
81
81
  }
@@ -87,14 +87,14 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body, }) => {
87
87
  // Otherwise, we need to create a new reservation
88
88
  return new Ok(previousReservation);
89
89
  }
90
- }
91
- catch (error) {
90
+ } catch (error) {
92
91
  // We couldn't fetch the reservation, so we create a new one and just log this
93
92
  await reportError(error);
94
93
  }
95
94
  const reservationId = generateId('SubscriptionReservation');
96
95
  // Create the reservation invoice
97
96
  const invoiceResult = await createReservationInvoice({
97
+ invoiceId: generateId('Invoice'),
98
98
  couponCode,
99
99
  plan,
100
100
  mileagePackage,
@@ -106,7 +106,7 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body, }) => {
106
106
  analytics,
107
107
  vehicle,
108
108
  payer,
109
- subscribingUser,
109
+ subscribingUser
110
110
  });
111
111
  if (invoiceResult.err) {
112
112
  return invoiceResult;
@@ -125,66 +125,63 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body, }) => {
125
125
  deliveryAddresses,
126
126
  deliveryDate,
127
127
  asBusiness,
128
- source,
128
+ source
129
129
  });
130
130
  return new Ok(reservation);
131
131
  };
132
- const createReservation = async ({ reservationId, invoiceId, subscribingUserId, vehicleId, businessId, plan, mileagePackage, couponCode, referralCode, analytics, deliveryAddresses, deliveryDate, asBusiness, source, }) => {
132
+ const createReservation = async ({ reservationId, invoiceId, subscribingUserId, vehicleId, businessId, plan, mileagePackage, couponCode, referralCode, analytics, deliveryAddresses, deliveryDate, asBusiness, source })=>{
133
133
  return await prisma.subscriptionReservation.create({
134
134
  data: {
135
135
  id: reservationId,
136
136
  invoice: {
137
137
  connect: {
138
- id: invoiceId,
139
- },
138
+ id: invoiceId
139
+ }
140
140
  },
141
141
  user: {
142
142
  connect: {
143
- id: subscribingUserId,
144
- },
143
+ id: subscribingUserId
144
+ }
145
145
  },
146
146
  vehicle: {
147
147
  connect: {
148
- id: vehicleId,
149
- },
148
+ id: vehicleId
149
+ }
150
150
  },
151
- ...(businessId
152
- ? {
153
- business: {
154
- connect: {
155
- id: businessId,
156
- },
157
- },
151
+ ...businessId ? {
152
+ business: {
153
+ connect: {
154
+ id: businessId
155
+ }
158
156
  }
159
- : undefined),
157
+ } : undefined,
160
158
  plan,
161
159
  mileagePackage,
162
160
  couponCode: couponCode,
163
161
  deliveryAddresses: deliveryAddresses,
164
162
  deliveryDate: deliveryDate,
165
- ...(referralCode
166
- ? {
167
- referral: {
168
- connect: {
169
- id: referralCode,
170
- },
171
- },
163
+ ...referralCode ? {
164
+ referral: {
165
+ connect: {
166
+ id: referralCode
167
+ }
172
168
  }
173
- : undefined),
169
+ } : undefined,
174
170
  asBusiness: !!asBusiness,
175
171
  source,
176
172
  metadata: {
177
- analytics,
178
- },
179
- },
173
+ analytics
174
+ }
175
+ }
180
176
  });
181
177
  };
182
- const recreateReservationInvoiceAndUpdateReservation = async (previousReservation, body, vehicle, payer) => {
178
+ const recreateReservationInvoiceAndUpdateReservation = async (previousReservation, body, vehicle, payer)=>{
183
179
  const invoiceResult = await createReservationInvoice({
184
180
  ...body,
181
+ invoiceId: generateId('Invoice'),
185
182
  reservationId: previousReservation.id,
186
183
  vehicle,
187
- payer,
184
+ payer
188
185
  });
189
186
  if (!invoiceResult.ok) {
190
187
  return invoiceResult;
@@ -192,16 +189,15 @@ const recreateReservationInvoiceAndUpdateReservation = async (previousReservatio
192
189
  const invoice = invoiceResult.val;
193
190
  const updatedReservation = await prisma.subscriptionReservation.update({
194
191
  where: {
195
- id: previousReservation.id,
192
+ id: previousReservation.id
196
193
  },
197
194
  data: {
198
195
  invoice: {
199
196
  connect: {
200
- id: invoice.id,
201
- },
202
- },
203
- },
197
+ id: invoice.id
198
+ }
199
+ }
200
+ }
204
201
  });
205
202
  return new Ok(updatedReservation);
206
203
  };
207
- //# sourceMappingURL=fetch-or-create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-or-create.js","sourceRoot":"","sources":["../../src/reservation/fetch-or-create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-or-create.js","sourceRoot":"","sources":["../../src/reservation/fetch-or-create.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import { type Business, type Invoice, type User, type Vehicle } from '@driveflux/db';
2
2
  import { type PromisedResult } from '@driveflux/result';
3
- import type { ReserveVehicleParams } from './types';
3
+ import type { ReserveVehicleParams } from './types.js';
4
4
  type CreateReservationInvoiceParams = Pick<ReserveVehicleParams, 'couponCode' | 'plan' | 'mileagePackage' | 'referralCode' | 'paymentIntentId' | 'freeReservation' | 'freeReservationReason' | 'analytics' | 'subscribingUser'> & {
5
+ invoiceId?: string;
5
6
  reservationId?: string;
6
7
  vehicle: Pick<Vehicle, 'id' | 'make' | 'vehicleModel' | 'variant' | 'year' | 'type'>;
7
8
  payer: User | Business;
8
9
  };
9
10
  export declare const updateReservationInvoiceIfNeeded: (oldReservationInvoice: Pick<Invoice, "id" | "couponCode" | "stripePaymentIntentId" | "lines" | "payerId" | "discountIds" | "lockedAt">, newParams: Pick<CreateReservationInvoiceParams, "couponCode" | "paymentIntentId">) => PromisedResult<Invoice>;
10
- export declare const createReservationInvoice: ({ couponCode, plan, mileagePackage, referralCode, reservationId, paymentIntentId, freeReservation, freeReservationReason, analytics, vehicle, payer, subscribingUser, }: CreateReservationInvoiceParams) => PromisedResult<Invoice>;
11
+ export declare const createReservationInvoice: ({ invoiceId, couponCode, plan, mileagePackage, referralCode, reservationId, paymentIntentId, freeReservation, freeReservationReason, analytics, vehicle, payer, subscribingUser, }: CreateReservationInvoiceParams) => PromisedResult<Invoice>;
11
12
  export {};
12
13
  //# sourceMappingURL=invoice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoice.d.ts","sourceRoot":"","sources":["../../src/reservation/invoice.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,OAAO,EAEZ,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,MAAM,eAAe,CAAA;AAQtB,OAAO,EAAM,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAI3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEnD,KAAK,8BAA8B,GAAG,IAAI,CACzC,oBAAoB,EAClB,YAAY,GACZ,MAAM,GACN,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,uBAAuB,GACvB,WAAW,GACX,iBAAiB,CACnB,GAAG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,IAAI,CACZ,OAAO,EACP,IAAI,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAC5D,CAAA;IACD,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,gCAAgC,GAC5C,uBAAuB,IAAI,CAC1B,OAAO,EACL,IAAI,GACJ,YAAY,GACZ,uBAAuB,GACvB,OAAO,GACP,SAAS,GACT,aAAa,GACb,UAAU,CACZ,EACD,WAAW,IAAI,CACd,8BAA8B,EAC9B,YAAY,GAAG,iBAAiB,CAChC,KACC,cAAc,CAAC,OAAO,CA0GxB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,yKAa5C,8BAA8B,KAAG,cAAc,CAAC,OAAO,CA2GzD,CAAA"}
1
+ {"version":3,"file":"invoice.d.ts","sourceRoot":"","sources":["../../src/reservation/invoice.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,OAAO,EAEZ,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,MAAM,eAAe,CAAA;AAQtB,OAAO,EAAM,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAI3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,KAAK,8BAA8B,GAAG,IAAI,CACzC,oBAAoB,EAClB,YAAY,GACZ,MAAM,GACN,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,uBAAuB,GACvB,WAAW,GACX,iBAAiB,CACnB,GAAG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,IAAI,CACZ,OAAO,EACP,IAAI,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAC5D,CAAA;IACD,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,gCAAgC,GAC5C,uBAAuB,IAAI,CAC1B,OAAO,EACL,IAAI,GACJ,YAAY,GACZ,uBAAuB,GACvB,OAAO,GACP,SAAS,GACT,aAAa,GACb,UAAU,CACZ,EACD,WAAW,IAAI,CACd,8BAA8B,EAC9B,YAAY,GAAG,iBAAiB,CAChC,KACC,cAAc,CAAC,OAAO,CAuGxB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,oLAc5C,8BAA8B,KAAG,cAAc,CAAC,OAAO,CA6GzD,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { config } from '@driveflux/config/backend';
2
2
  import { loadCoupon, PROBLEM_APPLICABLE_NOT_FOUND } from '@driveflux/coupon';
3
- import { prisma, } from '@driveflux/db';
3
+ import { prisma } from '@driveflux/db';
4
4
  import { generateId } from '@driveflux/db/id';
5
5
  import { EMPTY_BILLING_ADDRESS } from '@driveflux/db/models/other';
6
6
  import { PURPOSE_RESERVATION } from '@driveflux/db/models/subscription';
@@ -12,17 +12,15 @@ import { Ok } from '@driveflux/result';
12
12
  import { format } from '@driveflux/time';
13
13
  import { isAfter } from 'date-fns/isAfter';
14
14
  import { subMinutes } from 'date-fns/subMinutes';
15
- export const updateReservationInvoiceIfNeeded = async (oldReservationInvoice, newParams) => {
16
- console.log('UPDATING INVOICE IF NEEDED');
15
+ export const updateReservationInvoiceIfNeeded = async (oldReservationInvoice, newParams)=>{
17
16
  const couponIsDifferent = oldReservationInvoice.couponCode !== newParams.couponCode;
18
- if (!couponIsDifferent &&
19
- oldReservationInvoice.stripePaymentIntentId === newParams.paymentIntentId) {
17
+ if (!couponIsDifferent && oldReservationInvoice.stripePaymentIntentId === newParams.paymentIntentId) {
20
18
  return new Ok(oldReservationInvoice);
21
19
  }
22
20
  // If the coupon or payment intent are differnt we should update the invoice
23
21
  let update = {
24
22
  stripePaymentIntentId: newParams.paymentIntentId,
25
- couponCode: newParams.couponCode,
23
+ couponCode: newParams.couponCode
26
24
  };
27
25
  // If the coupon is different, we need to apply the coupon to the invoice
28
26
  if (couponIsDifferent) {
@@ -30,64 +28,56 @@ export const updateReservationInvoiceIfNeeded = async (oldReservationInvoice, ne
30
28
  const result = await coupons.applyCouponToUnsavedInvoice(newParams.couponCode, oldReservationInvoice);
31
29
  if (result.ok) {
32
30
  const { discounts, ...rest } = result.val;
33
- const toDisconnect = discounts
34
- ? oldReservationInvoice.discountIds?.filter((id) => !discounts.connect?.some((d) => d.id === id))
35
- : undefined;
36
- const disconnectClauses = toDisconnect?.length
37
- ? {
38
- disconnect: toDisconnect.map((id) => ({ id })),
39
- }
40
- : undefined;
31
+ const toDisconnect = discounts ? oldReservationInvoice.discountIds?.filter((id)=>!discounts.connect?.some((d)=>d.id === id)) : undefined;
32
+ const disconnectClauses = toDisconnect?.length ? {
33
+ disconnect: toDisconnect.map((id)=>({
34
+ id
35
+ }))
36
+ } : undefined;
41
37
  update = {
42
38
  ...update,
43
39
  ...rest,
44
- ...(discounts || disconnectClauses
45
- ? {
46
- discounts: {
47
- ...(discounts || {}),
48
- ...(disconnectClauses || {}),
49
- },
40
+ ...discounts || disconnectClauses ? {
41
+ discounts: {
42
+ ...discounts || {},
43
+ ...disconnectClauses || {}
50
44
  }
51
- : {}),
45
+ } : {},
52
46
  metadata: {
53
47
  ...update.metadata,
54
- couponCode: newParams.couponCode,
48
+ couponCode: newParams.couponCode
55
49
  },
56
50
  providerMetadata: {
57
51
  ...update.providerMetadata,
58
- couponCode: newParams.couponCode,
59
- },
52
+ couponCode: newParams.couponCode
53
+ }
60
54
  };
61
55
  }
62
56
  if (result.err && result.val.code !== PROBLEM_APPLICABLE_NOT_FOUND) {
63
57
  return result;
64
58
  }
65
- }
66
- else if (oldReservationInvoice.discountIds.length) {
59
+ } else if (oldReservationInvoice.discountIds.length) {
67
60
  // No discounts, so we disconnect all of them
68
61
  update = {
69
62
  discounts: {
70
- disconnect: oldReservationInvoice.discountIds.map((id) => ({
71
- id,
72
- })),
73
- },
63
+ disconnect: oldReservationInvoice.discountIds.map((id)=>({
64
+ id
65
+ }))
66
+ }
74
67
  };
75
68
  }
76
69
  }
77
70
  let updated = await wrapInResult(biller.updateInvoice(oldReservationInvoice.id, update));
78
- console.log('Updating invoice result', updated);
79
71
  // If the invoice was locked due to pending status and we're more than 1 minute old, we unlock it
80
72
  if (updated.err && updated.val.code === 'invoice_pending') {
81
- if ((oldReservationInvoice.lockedAt &&
82
- isAfter(oldReservationInvoice.lockedAt, subMinutes(new Date(), 1))) ||
83
- !oldReservationInvoice.lockedAt) {
73
+ if (oldReservationInvoice.lockedAt && isAfter(oldReservationInvoice.lockedAt, subMinutes(new Date(), 1)) || !oldReservationInvoice.lockedAt) {
84
74
  updated = await wrapInResult(biller.updateInvoice(oldReservationInvoice.id, {
85
75
  ...update,
86
76
  locked: false,
87
77
  lockedAt: null,
88
78
  lockReason: null,
89
79
  unlockAt: null,
90
- status: 'draft',
80
+ status: 'draft'
91
81
  }));
92
82
  }
93
83
  }
@@ -96,10 +86,11 @@ export const updateReservationInvoiceIfNeeded = async (oldReservationInvoice, ne
96
86
  }
97
87
  return new Ok(updated.val);
98
88
  };
99
- export const createReservationInvoice = async ({ couponCode, plan, mileagePackage, referralCode, reservationId, paymentIntentId, freeReservation, freeReservationReason, analytics, vehicle, payer, subscribingUser, }) => {
89
+ export const createReservationInvoice = async ({ invoiceId, couponCode, plan, mileagePackage, referralCode, reservationId, paymentIntentId, freeReservation, freeReservationReason, analytics, vehicle, payer, subscribingUser })=>{
100
90
  if (freeReservation) {
101
91
  // It's a free reservation, so we don't need to add a coupon code
102
92
  return await wrapInResult(biller.createInvoice(getInvoiceCreateDetails({
93
+ invoiceId,
103
94
  payer,
104
95
  vehicle,
105
96
  plan,
@@ -108,21 +99,17 @@ export const createReservationInvoice = async ({ couponCode, plan, mileagePackag
108
99
  freeReservation,
109
100
  freeReservationReason,
110
101
  analytics,
111
- reservationId,
102
+ reservationId
112
103
  })));
113
104
  }
114
105
  let finalCouponCode = couponCode;
115
106
  // If we don't have a reservation coupon ID, we apply the referral discount if any
116
- const referral = referralCode &&
117
- (await prisma.referral.findUnique({
118
- where: {
119
- id: referralCode,
120
- },
121
- }));
122
- if (!finalCouponCode &&
123
- referral &&
124
- referral.discountToReceiverCouponId &&
125
- referral.discountToReceiverCouponApplicationName === 'reservationFee') {
107
+ const referral = referralCode && await prisma.referral.findUnique({
108
+ where: {
109
+ id: referralCode
110
+ }
111
+ });
112
+ if (!finalCouponCode && referral && referral.discountToReceiverCouponId && referral.discountToReceiverCouponApplicationName === 'reservationFee') {
126
113
  const referralCoupon = await loadCoupon(referral.discountToReceiverCouponId);
127
114
  if (referralCoupon) {
128
115
  finalCouponCode = referralCoupon.code;
@@ -132,6 +119,7 @@ export const createReservationInvoice = async ({ couponCode, plan, mileagePackag
132
119
  // We leave adding the coupon code applyCouponToUnsavedInvoice()
133
120
  let invoiceCreateDetails = {
134
121
  ...getInvoiceCreateDetails({
122
+ invoiceId,
135
123
  payer,
136
124
  vehicle,
137
125
  plan,
@@ -140,15 +128,15 @@ export const createReservationInvoice = async ({ couponCode, plan, mileagePackag
140
128
  freeReservation,
141
129
  freeReservationReason,
142
130
  analytics,
143
- reservationId,
131
+ reservationId
144
132
  }),
145
133
  lines: [
146
134
  {
147
135
  amount: reservationAmount,
148
136
  description: `Reservation fee for ${vehicleName(vehicle)}`,
149
- chargingFor: 'reservationFee',
150
- },
151
- ],
137
+ chargingFor: 'reservationFee'
138
+ }
139
+ ]
152
140
  };
153
141
  if (finalCouponCode) {
154
142
  const withCoupon = await coupons.applyCouponToUnsavedInvoice(finalCouponCode, invoiceCreateDetails, 'reservationFee', {
@@ -158,10 +146,9 @@ export const createReservationInvoice = async ({ couponCode, plan, mileagePackag
158
146
  vehicleMake: vehicle.make,
159
147
  userId: subscribingUser.id,
160
148
  businessId: payer.object === 'business' ? payer.id : undefined,
161
- vehicleType: vehicle.type,
149
+ vehicleType: vehicle.type
162
150
  });
163
- if (withCoupon.err &&
164
- withCoupon.val.code !== PROBLEM_APPLICABLE_NOT_FOUND) {
151
+ if (withCoupon.err && withCoupon.val.code !== PROBLEM_APPLICABLE_NOT_FOUND) {
165
152
  return withCoupon;
166
153
  }
167
154
  if (withCoupon.ok) {
@@ -169,18 +156,18 @@ export const createReservationInvoice = async ({ couponCode, plan, mileagePackag
169
156
  ...withCoupon.val,
170
157
  metadata: {
171
158
  ...withCoupon.val.metadata,
172
- couponCode: finalCouponCode,
159
+ couponCode: finalCouponCode
173
160
  },
174
161
  providerMetadata: {
175
162
  ...withCoupon.val.providerMetadata,
176
- couponCode: finalCouponCode,
177
- },
163
+ couponCode: finalCouponCode
164
+ }
178
165
  };
179
166
  }
180
167
  }
181
168
  return await wrapInResult(biller.createInvoice(invoiceCreateDetails));
182
169
  };
183
- const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId, vehicle, plan, mileagePackage, couponCode, paymentIntentId, freeReservation, freeReservationReason, analytics, reservationId, }) => {
170
+ const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId, vehicle, plan, mileagePackage, couponCode, paymentIntentId, freeReservation, freeReservationReason, analytics, reservationId })=>{
184
171
  return {
185
172
  id: invoiceId || generateId('Invoice'),
186
173
  taxPercentage: 0,
@@ -196,15 +183,13 @@ const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId
196
183
  description: 'Reservation fee for a FLUX subscription',
197
184
  footer: `Invoice for a FLUX subscription reservation. Due by ${format(date ?? new Date())}`,
198
185
  invoiceUrl: `${config.appUrl}/invoice-preview/${invoiceId}`,
199
- ...(reservationDiscountId
200
- ? {
201
- discounts: {
202
- connect: {
203
- id: reservationDiscountId,
204
- },
205
- },
186
+ ...reservationDiscountId ? {
187
+ discounts: {
188
+ connect: {
189
+ id: reservationDiscountId
190
+ }
206
191
  }
207
- : {}),
192
+ } : {},
208
193
  lines: [],
209
194
  subscriptionDetails: {
210
195
  vehicleId: vehicle.id,
@@ -213,7 +198,7 @@ const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId
213
198
  variant: vehicle.variant,
214
199
  year: vehicle.year,
215
200
  plan: plan,
216
- mileagePackage: mileagePackage,
201
+ mileagePackage: mileagePackage
217
202
  },
218
203
  stripePaymentIntentId: paymentIntentId,
219
204
  providerMetadata: {
@@ -221,14 +206,18 @@ const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId
221
206
  mileagePackage,
222
207
  vehicleId: vehicle.id,
223
208
  vehicleName: vehicleName(vehicle),
224
- ...(reservationId ? { reservationId } : {}),
225
- ...(couponCode ? { couponCode } : {}),
209
+ ...reservationId ? {
210
+ reservationId
211
+ } : {},
212
+ ...couponCode ? {
213
+ couponCode
214
+ } : {}
226
215
  },
227
216
  autoRetry: {
228
217
  enabled: false,
229
218
  interval: 0,
230
219
  maxAttempts: 0,
231
- attempts: 0,
220
+ attempts: 0
232
221
  },
233
222
  metadata: {
234
223
  purpose: PURPOSE_RESERVATION,
@@ -237,11 +226,10 @@ const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId
237
226
  plan,
238
227
  mileagePackage,
239
228
  couponCode,
240
- ...(freeReservation && freeReservationReason
241
- ? { freeReservationReason }
242
- : {}),
243
- analytics,
244
- },
229
+ ...freeReservation && freeReservationReason ? {
230
+ freeReservationReason
231
+ } : {},
232
+ analytics
233
+ }
245
234
  };
246
235
  };
247
- //# sourceMappingURL=invoice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../src/reservation/invoice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../src/reservation/invoice.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type Business, type User } from '@driveflux/db';
2
2
  import { type PromisedResult } from '@driveflux/result';
3
- import type { ReserveVehicleParams } from './types';
3
+ import type { ReserveVehicleParams } from './types.js';
4
4
  export declare const getPayer: ({ subscribingUser, asBusiness, }: Pick<ReserveVehicleParams, "subscribingUser" | "asBusiness">) => PromisedResult<User | Business>;
5
5
  //# sourceMappingURL=payer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payer.d.ts","sourceRoot":"","sources":["../../src/reservation/payer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAU,KAAK,IAAI,EAAE,MAAM,eAAe,CAAA;AAMhE,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEnD,eAAO,MAAM,QAAQ,GAAU,kCAG5B,IAAI,CACN,oBAAoB,EACpB,iBAAiB,GAAG,YAAY,CAChC,KAAG,cAAc,CAAC,IAAI,GAAG,QAAQ,CAsCjC,CAAA"}
1
+ {"version":3,"file":"payer.d.ts","sourceRoot":"","sources":["../../src/reservation/payer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAU,KAAK,IAAI,EAAE,MAAM,eAAe,CAAA;AAMhE,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,eAAO,MAAM,QAAQ,GAAU,kCAG5B,IAAI,CACN,oBAAoB,EACpB,iBAAiB,GAAG,YAAY,CAChC,KAAG,cAAc,CAAC,IAAI,GAAG,QAAQ,CAsCjC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { prisma } from '@driveflux/db';
2
- import { makeProblem, PROBLEM_CONDITION_FAILED, PROBLEM_NOT_FOUND, } from '@driveflux/problem';
2
+ import { makeProblem, PROBLEM_CONDITION_FAILED, PROBLEM_NOT_FOUND } from '@driveflux/problem';
3
3
  import { Err, Ok } from '@driveflux/result';
4
- export const getPayer = async ({ subscribingUser, asBusiness, }) => {
4
+ export const getPayer = async ({ subscribingUser, asBusiness })=>{
5
5
  let business = null;
6
6
  let payer = subscribingUser;
7
7
  if (asBusiness) {
@@ -11,8 +11,8 @@ export const getPayer = async ({ subscribingUser, asBusiness, }) => {
11
11
  // load business
12
12
  business = await prisma.business.findUnique({
13
13
  where: {
14
- id: subscribingUser.businessId,
15
- },
14
+ id: subscribingUser.businessId
15
+ }
16
16
  });
17
17
  if (!business) {
18
18
  return new Err(makeProblem(PROBLEM_NOT_FOUND, `The business ${subscribingUser.businessId} was not found.`));
@@ -26,7 +26,7 @@ export const getPayer = async ({ subscribingUser, asBusiness, }) => {
26
26
  }
27
27
  return new Ok(payer);
28
28
  };
29
- const checkPayerObjectSanity = (subscriber) => {
29
+ const checkPayerObjectSanity = (subscriber)=>{
30
30
  if (!subscriber.email) {
31
31
  return new Err(makeProblem(PROBLEM_CONDITION_FAILED, `Subscriber ${subscriber.id} has no email. Please add a verified email first.`));
32
32
  }
@@ -35,4 +35,3 @@ const checkPayerObjectSanity = (subscriber) => {
35
35
  }
36
36
  return new Ok(true);
37
37
  };
38
- //# sourceMappingURL=payer.js.map
@@ -1,5 +1,5 @@
1
1
  import type { SubscriptionReservation } from '@driveflux/db';
2
2
  import { type PromisedResult } from '@driveflux/result';
3
- import type { ReserveVehicleParams } from './types';
3
+ import type { ReserveVehicleParams } from './types.js';
4
4
  export declare const reserveVehicle: (vehicleId: string, unprocessed: ReserveVehicleParams) => PromisedResult<SubscriptionReservation>;
5
5
  //# sourceMappingURL=reserve.d.ts.map