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

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 +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.d.ts +1 -1
  6. package/dist/auth/register.js +36 -44
  7. package/dist/auth/register.js.map +1 -1
  8. package/dist/auth/tokens.d.ts +3 -3
  9. package/dist/auth/tokens.js +55 -58
  10. package/dist/auth/verifications.js +52 -53
  11. package/dist/constants.js +1 -0
  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 +8 -7
  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 +7 -6
  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 +6 -7
  23. package/dist/mailjet/refresh-email-preferences.js +12 -11
  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 +15 -14
  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 +2 -1
  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 +6 -8
  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 +15 -14
  37. package/dist/mailjet/utils/lists.js +8 -7
  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 +15 -16
  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 +20 -24
  44. package/dist/notion/client.js.map +1 -1
  45. package/dist/notion/helpful.js +9 -6
  46. package/dist/notion/schemas/block.js +48 -42
  47. package/dist/notion/schemas/common.js +14 -9
  48. package/dist/notion/schemas/database.d.ts +1 -1
  49. package/dist/notion/schemas/database.js +60 -62
  50. package/dist/notion/schemas/emoji.js +2 -1
  51. package/dist/notion/schemas/file.js +9 -9
  52. package/dist/notion/schemas/kb.js +6 -5
  53. package/dist/notion/schemas/page.d.ts +1 -1
  54. package/dist/notion/schemas/page.js +61 -72
  55. package/dist/notion/schemas/parent.js +5 -4
  56. package/dist/notion/schemas/user.js +19 -18
  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 +7 -6
  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 +4 -3
  63. package/dist/reservation/display-vehicle.d.ts +16 -16
  64. package/dist/reservation/display-vehicle.js +71 -65
  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 +55 -51
  69. package/dist/reservation/fetch-or-create.js.map +1 -1
  70. package/dist/reservation/invoice.d.ts +2 -3
  71. package/dist/reservation/invoice.d.ts.map +1 -1
  72. package/dist/reservation/invoice.js +76 -64
  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 +6 -5
  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 +9 -8
  80. package/dist/reservation/reserve.js.map +1 -1
  81. package/dist/reservation/types.js +2 -1
  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 +18 -15
  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 +29 -24
  89. package/dist/validation.d.ts +4 -4
  90. package/dist/validation.d.ts.map +1 -1
  91. package/dist/validation.js +71 -77
  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 +19 -22
  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 +44 -30
  99. package/dist/vehicle/vehicle-pricing/index.js.map +1 -1
  100. package/dist/vehicle/vehicle-pricing/types.js +2 -1
  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.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;
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;
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
- } catch (error) {
90
+ }
91
+ catch (error) {
91
92
  // We couldn't fetch the reservation, so we create a new one and just log this
92
93
  await reportError(error);
93
94
  }
94
95
  const reservationId = generateId('SubscriptionReservation');
95
96
  // Create the reservation invoice
96
97
  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,63 +125,66 @@ 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
- business: {
153
- connect: {
154
- id: businessId
155
- }
151
+ ...(businessId
152
+ ? {
153
+ business: {
154
+ connect: {
155
+ id: businessId,
156
+ },
157
+ },
156
158
  }
157
- } : undefined,
159
+ : undefined),
158
160
  plan,
159
161
  mileagePackage,
160
162
  couponCode: couponCode,
161
163
  deliveryAddresses: deliveryAddresses,
162
164
  deliveryDate: deliveryDate,
163
- ...referralCode ? {
164
- referral: {
165
- connect: {
166
- id: referralCode
167
- }
165
+ ...(referralCode
166
+ ? {
167
+ referral: {
168
+ connect: {
169
+ id: referralCode,
170
+ },
171
+ },
168
172
  }
169
- } : undefined,
173
+ : undefined),
170
174
  asBusiness: !!asBusiness,
171
175
  source,
172
176
  metadata: {
173
- analytics
174
- }
175
- }
177
+ analytics,
178
+ },
179
+ },
176
180
  });
177
181
  };
178
- const recreateReservationInvoiceAndUpdateReservation = async (previousReservation, body, vehicle, payer)=>{
182
+ const recreateReservationInvoiceAndUpdateReservation = async (previousReservation, body, vehicle, payer) => {
179
183
  const invoiceResult = await createReservationInvoice({
180
184
  ...body,
181
- invoiceId: generateId('Invoice'),
182
185
  reservationId: previousReservation.id,
183
186
  vehicle,
184
- payer
187
+ payer,
185
188
  });
186
189
  if (!invoiceResult.ok) {
187
190
  return invoiceResult;
@@ -189,15 +192,16 @@ const recreateReservationInvoiceAndUpdateReservation = async (previousReservatio
189
192
  const invoice = invoiceResult.val;
190
193
  const updatedReservation = await prisma.subscriptionReservation.update({
191
194
  where: {
192
- id: previousReservation.id
195
+ id: previousReservation.id,
193
196
  },
194
197
  data: {
195
198
  invoice: {
196
199
  connect: {
197
- id: invoice.id
198
- }
199
- }
200
- }
200
+ id: invoice.id,
201
+ },
202
+ },
203
+ },
201
204
  });
202
205
  return new Ok(updatedReservation);
203
206
  };
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,13 +1,12 @@
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.js';
3
+ import type { ReserveVehicleParams } from './types';
4
4
  type CreateReservationInvoiceParams = Pick<ReserveVehicleParams, 'couponCode' | 'plan' | 'mileagePackage' | 'referralCode' | 'paymentIntentId' | 'freeReservation' | 'freeReservationReason' | 'analytics' | 'subscribingUser'> & {
5
- invoiceId?: string;
6
5
  reservationId?: string;
7
6
  vehicle: Pick<Vehicle, 'id' | 'make' | 'vehicleModel' | 'variant' | 'year' | 'type'>;
8
7
  payer: User | Business;
9
8
  };
10
9
  export declare const updateReservationInvoiceIfNeeded: (oldReservationInvoice: Pick<Invoice, "id" | "couponCode" | "stripePaymentIntentId" | "lines" | "payerId" | "discountIds" | "lockedAt">, newParams: Pick<CreateReservationInvoiceParams, "couponCode" | "paymentIntentId">) => PromisedResult<Invoice>;
11
- export declare const createReservationInvoice: ({ invoiceId, couponCode, plan, mileagePackage, referralCode, reservationId, paymentIntentId, freeReservation, freeReservationReason, analytics, vehicle, payer, subscribingUser, }: CreateReservationInvoiceParams) => PromisedResult<Invoice>;
10
+ export declare const createReservationInvoice: ({ couponCode, plan, mileagePackage, referralCode, reservationId, paymentIntentId, freeReservation, freeReservationReason, analytics, vehicle, payer, subscribingUser, }: CreateReservationInvoiceParams) => PromisedResult<Invoice>;
12
11
  export {};
13
12
  //# 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,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
+ {"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,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,15 +12,17 @@ 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)=>{
15
+ export const updateReservationInvoiceIfNeeded = async (oldReservationInvoice, newParams) => {
16
+ console.log('UPDATING INVOICE IF NEEDED');
16
17
  const couponIsDifferent = oldReservationInvoice.couponCode !== newParams.couponCode;
17
- if (!couponIsDifferent && oldReservationInvoice.stripePaymentIntentId === newParams.paymentIntentId) {
18
+ if (!couponIsDifferent &&
19
+ oldReservationInvoice.stripePaymentIntentId === newParams.paymentIntentId) {
18
20
  return new Ok(oldReservationInvoice);
19
21
  }
20
22
  // If the coupon or payment intent are differnt we should update the invoice
21
23
  let update = {
22
24
  stripePaymentIntentId: newParams.paymentIntentId,
23
- couponCode: newParams.couponCode
25
+ couponCode: newParams.couponCode,
24
26
  };
25
27
  // If the coupon is different, we need to apply the coupon to the invoice
26
28
  if (couponIsDifferent) {
@@ -28,56 +30,64 @@ export const updateReservationInvoiceIfNeeded = async (oldReservationInvoice, ne
28
30
  const result = await coupons.applyCouponToUnsavedInvoice(newParams.couponCode, oldReservationInvoice);
29
31
  if (result.ok) {
30
32
  const { discounts, ...rest } = result.val;
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;
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;
37
41
  update = {
38
42
  ...update,
39
43
  ...rest,
40
- ...discounts || disconnectClauses ? {
41
- discounts: {
42
- ...discounts || {},
43
- ...disconnectClauses || {}
44
+ ...(discounts || disconnectClauses
45
+ ? {
46
+ discounts: {
47
+ ...(discounts || {}),
48
+ ...(disconnectClauses || {}),
49
+ },
44
50
  }
45
- } : {},
51
+ : {}),
46
52
  metadata: {
47
53
  ...update.metadata,
48
- couponCode: newParams.couponCode
54
+ couponCode: newParams.couponCode,
49
55
  },
50
56
  providerMetadata: {
51
57
  ...update.providerMetadata,
52
- couponCode: newParams.couponCode
53
- }
58
+ couponCode: newParams.couponCode,
59
+ },
54
60
  };
55
61
  }
56
62
  if (result.err && result.val.code !== PROBLEM_APPLICABLE_NOT_FOUND) {
57
63
  return result;
58
64
  }
59
- } else if (oldReservationInvoice.discountIds.length) {
65
+ }
66
+ else if (oldReservationInvoice.discountIds.length) {
60
67
  // No discounts, so we disconnect all of them
61
68
  update = {
62
69
  discounts: {
63
- disconnect: oldReservationInvoice.discountIds.map((id)=>({
64
- id
65
- }))
66
- }
70
+ disconnect: oldReservationInvoice.discountIds.map((id) => ({
71
+ id,
72
+ })),
73
+ },
67
74
  };
68
75
  }
69
76
  }
70
77
  let updated = await wrapInResult(biller.updateInvoice(oldReservationInvoice.id, update));
78
+ console.log('Updating invoice result', updated);
71
79
  // If the invoice was locked due to pending status and we're more than 1 minute old, we unlock it
72
80
  if (updated.err && updated.val.code === 'invoice_pending') {
73
- if (oldReservationInvoice.lockedAt && isAfter(oldReservationInvoice.lockedAt, subMinutes(new Date(), 1)) || !oldReservationInvoice.lockedAt) {
81
+ if ((oldReservationInvoice.lockedAt &&
82
+ isAfter(oldReservationInvoice.lockedAt, subMinutes(new Date(), 1))) ||
83
+ !oldReservationInvoice.lockedAt) {
74
84
  updated = await wrapInResult(biller.updateInvoice(oldReservationInvoice.id, {
75
85
  ...update,
76
86
  locked: false,
77
87
  lockedAt: null,
78
88
  lockReason: null,
79
89
  unlockAt: null,
80
- status: 'draft'
90
+ status: 'draft',
81
91
  }));
82
92
  }
83
93
  }
@@ -86,11 +96,10 @@ export const updateReservationInvoiceIfNeeded = async (oldReservationInvoice, ne
86
96
  }
87
97
  return new Ok(updated.val);
88
98
  };
89
- export const createReservationInvoice = async ({ invoiceId, couponCode, plan, mileagePackage, referralCode, reservationId, paymentIntentId, freeReservation, freeReservationReason, analytics, vehicle, payer, subscribingUser })=>{
99
+ export const createReservationInvoice = async ({ couponCode, plan, mileagePackage, referralCode, reservationId, paymentIntentId, freeReservation, freeReservationReason, analytics, vehicle, payer, subscribingUser, }) => {
90
100
  if (freeReservation) {
91
101
  // It's a free reservation, so we don't need to add a coupon code
92
102
  return await wrapInResult(biller.createInvoice(getInvoiceCreateDetails({
93
- invoiceId,
94
103
  payer,
95
104
  vehicle,
96
105
  plan,
@@ -99,17 +108,21 @@ export const createReservationInvoice = async ({ invoiceId, couponCode, plan, mi
99
108
  freeReservation,
100
109
  freeReservationReason,
101
110
  analytics,
102
- reservationId
111
+ reservationId,
103
112
  })));
104
113
  }
105
114
  let finalCouponCode = couponCode;
106
115
  // If we don't have a reservation coupon ID, we apply the referral discount if any
107
- const referral = referralCode && await prisma.referral.findUnique({
108
- where: {
109
- id: referralCode
110
- }
111
- });
112
- if (!finalCouponCode && referral && referral.discountToReceiverCouponId && referral.discountToReceiverCouponApplicationName === 'reservationFee') {
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') {
113
126
  const referralCoupon = await loadCoupon(referral.discountToReceiverCouponId);
114
127
  if (referralCoupon) {
115
128
  finalCouponCode = referralCoupon.code;
@@ -119,7 +132,6 @@ export const createReservationInvoice = async ({ invoiceId, couponCode, plan, mi
119
132
  // We leave adding the coupon code applyCouponToUnsavedInvoice()
120
133
  let invoiceCreateDetails = {
121
134
  ...getInvoiceCreateDetails({
122
- invoiceId,
123
135
  payer,
124
136
  vehicle,
125
137
  plan,
@@ -128,15 +140,15 @@ export const createReservationInvoice = async ({ invoiceId, couponCode, plan, mi
128
140
  freeReservation,
129
141
  freeReservationReason,
130
142
  analytics,
131
- reservationId
143
+ reservationId,
132
144
  }),
133
145
  lines: [
134
146
  {
135
147
  amount: reservationAmount,
136
148
  description: `Reservation fee for ${vehicleName(vehicle)}`,
137
- chargingFor: 'reservationFee'
138
- }
139
- ]
149
+ chargingFor: 'reservationFee',
150
+ },
151
+ ],
140
152
  };
141
153
  if (finalCouponCode) {
142
154
  const withCoupon = await coupons.applyCouponToUnsavedInvoice(finalCouponCode, invoiceCreateDetails, 'reservationFee', {
@@ -146,9 +158,10 @@ export const createReservationInvoice = async ({ invoiceId, couponCode, plan, mi
146
158
  vehicleMake: vehicle.make,
147
159
  userId: subscribingUser.id,
148
160
  businessId: payer.object === 'business' ? payer.id : undefined,
149
- vehicleType: vehicle.type
161
+ vehicleType: vehicle.type,
150
162
  });
151
- if (withCoupon.err && withCoupon.val.code !== PROBLEM_APPLICABLE_NOT_FOUND) {
163
+ if (withCoupon.err &&
164
+ withCoupon.val.code !== PROBLEM_APPLICABLE_NOT_FOUND) {
152
165
  return withCoupon;
153
166
  }
154
167
  if (withCoupon.ok) {
@@ -156,18 +169,18 @@ export const createReservationInvoice = async ({ invoiceId, couponCode, plan, mi
156
169
  ...withCoupon.val,
157
170
  metadata: {
158
171
  ...withCoupon.val.metadata,
159
- couponCode: finalCouponCode
172
+ couponCode: finalCouponCode,
160
173
  },
161
174
  providerMetadata: {
162
175
  ...withCoupon.val.providerMetadata,
163
- couponCode: finalCouponCode
164
- }
176
+ couponCode: finalCouponCode,
177
+ },
165
178
  };
166
179
  }
167
180
  }
168
181
  return await wrapInResult(biller.createInvoice(invoiceCreateDetails));
169
182
  };
170
- const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId, vehicle, plan, mileagePackage, couponCode, paymentIntentId, freeReservation, freeReservationReason, analytics, reservationId })=>{
183
+ const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId, vehicle, plan, mileagePackage, couponCode, paymentIntentId, freeReservation, freeReservationReason, analytics, reservationId, }) => {
171
184
  return {
172
185
  id: invoiceId || generateId('Invoice'),
173
186
  taxPercentage: 0,
@@ -183,13 +196,15 @@ const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId
183
196
  description: 'Reservation fee for a FLUX subscription',
184
197
  footer: `Invoice for a FLUX subscription reservation. Due by ${format(date ?? new Date())}`,
185
198
  invoiceUrl: `${config.appUrl}/invoice-preview/${invoiceId}`,
186
- ...reservationDiscountId ? {
187
- discounts: {
188
- connect: {
189
- id: reservationDiscountId
190
- }
199
+ ...(reservationDiscountId
200
+ ? {
201
+ discounts: {
202
+ connect: {
203
+ id: reservationDiscountId,
204
+ },
205
+ },
191
206
  }
192
- } : {},
207
+ : {}),
193
208
  lines: [],
194
209
  subscriptionDetails: {
195
210
  vehicleId: vehicle.id,
@@ -198,7 +213,7 @@ const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId
198
213
  variant: vehicle.variant,
199
214
  year: vehicle.year,
200
215
  plan: plan,
201
- mileagePackage: mileagePackage
216
+ mileagePackage: mileagePackage,
202
217
  },
203
218
  stripePaymentIntentId: paymentIntentId,
204
219
  providerMetadata: {
@@ -206,18 +221,14 @@ const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId
206
221
  mileagePackage,
207
222
  vehicleId: vehicle.id,
208
223
  vehicleName: vehicleName(vehicle),
209
- ...reservationId ? {
210
- reservationId
211
- } : {},
212
- ...couponCode ? {
213
- couponCode
214
- } : {}
224
+ ...(reservationId ? { reservationId } : {}),
225
+ ...(couponCode ? { couponCode } : {}),
215
226
  },
216
227
  autoRetry: {
217
228
  enabled: false,
218
229
  interval: 0,
219
230
  maxAttempts: 0,
220
- attempts: 0
231
+ attempts: 0,
221
232
  },
222
233
  metadata: {
223
234
  purpose: PURPOSE_RESERVATION,
@@ -226,10 +237,11 @@ const getInvoiceCreateDetails = ({ invoiceId, payer, date, reservationDiscountId
226
237
  plan,
227
238
  mileagePackage,
228
239
  couponCode,
229
- ...freeReservation && freeReservationReason ? {
230
- freeReservationReason
231
- } : {},
232
- analytics
233
- }
240
+ ...(freeReservation && freeReservationReason
241
+ ? { freeReservationReason }
242
+ : {}),
243
+ analytics,
244
+ },
234
245
  };
235
246
  };
247
+ //# sourceMappingURL=invoice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../src/reservation/invoice.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAGN,MAAM,GAGN,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAwBhD,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,EACpD,qBASC,EACD,SAGC,EACyB,EAAE;IAC5B,MAAM,iBAAiB,GACtB,qBAAqB,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,CAAA;IAC1D,IACC,CAAC,iBAAiB;QAClB,qBAAqB,CAAC,qBAAqB,KAAK,SAAS,CAAC,eAAe,EACxE,CAAC;QACF,OAAO,IAAI,EAAE,CAAC,qBAAgC,CAAC,CAAA;IAChD,CAAC;IAED,4EAA4E;IAE5E,IAAI,MAAM,GAAkB;QAC3B,qBAAqB,EAAE,SAAS,CAAC,eAAe;QAChD,UAAU,EAAE,SAAS,CAAC,UAAU;KAChC,CAAA;IAED,yEAAyE;IACzE,IAAI,iBAAiB,EAAE,CAAC;QACvB,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,2BAA2B,CACvD,SAAS,CAAC,UAAU,EACpB,qBAAqB,CACrB,CAAA;YACD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAA;gBACzC,MAAM,YAAY,GAAG,SAAS;oBAC7B,CAAC,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,CACzC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CACpD;oBACF,CAAC,CAAC,SAAS,CAAA;gBAEZ,MAAM,iBAAiB,GAAG,YAAY,EAAE,MAAM;oBAC7C,CAAC,CAAC;wBACA,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;qBAC9C;oBACF,CAAC,CAAC,SAAS,CAAA;gBAEZ,MAAM,GAAG;oBACR,GAAG,MAAM;oBACT,GAAG,IAAI;oBACP,GAAG,CAAC,SAAS,IAAI,iBAAiB;wBACjC,CAAC,CAAC;4BACA,SAAS,EAAE;gCACV,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;gCACpB,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;6BAC5B;yBACD;wBACF,CAAC,CAAC,EAAE,CAAC;oBACN,QAAQ,EAAE;wBACT,GAAG,MAAM,CAAC,QAAQ;wBAClB,UAAU,EAAE,SAAS,CAAC,UAAU;qBAChC;oBACD,gBAAgB,EAAE;wBACjB,GAAG,MAAM,CAAC,gBAAgB;wBAC1B,UAAU,EAAE,SAAS,CAAC,UAAU;qBAChC;iBACD,CAAA;YACF,CAAC;YACD,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;gBACpE,OAAO,MAAM,CAAA;YACd,CAAC;QACF,CAAC;aAAM,IAAI,qBAAqB,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACrD,6CAA6C;YAC7C,MAAM,GAAG;gBACR,SAAS,EAAE;oBACV,UAAU,EAAE,qBAAqB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC1D,EAAE;qBACF,CAAC,CAAC;iBACH;aACD,CAAA;QACF,CAAC;IACF,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,YAAY,CAC/B,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,CACtD,CAAA;IAED,iGAAiG;IACjG,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC3D,IACC,CAAC,qBAAqB,CAAC,QAAQ;YAC9B,OAAO,CAAC,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC,qBAAqB,CAAC,QAAQ,EAC9B,CAAC;YACF,OAAO,GAAG,MAAM,YAAY,CAC3B,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,EAAE;gBAC9C,GAAG,MAAM;gBACT,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,OAAO;aACf,CAAC,CACF,CAAA;QACF,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,CAAA;IACf,CAAC;IAED,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,GAAc,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC9C,SAAS,EACT,UAAU,EACV,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,OAAO,EACP,KAAK,EACL,eAAe,GACiB,EAA2B,EAAE;IAC7D,IAAI,eAAe,EAAE,CAAC;QACrB,iEAAiE;QACjE,OAAO,MAAM,YAAY,CACxB,MAAM,CAAC,aAAa,CACnB,uBAAuB,CAAC;YACvB,SAAS;YACT,KAAK;YACL,OAAO;YACP,IAAI;YACJ,cAAc;YACd,eAAe;YACf,eAAe;YACf,qBAAqB;YACrB,SAAS;YACT,aAAa;SACb,CAAC,CACkB,CACrB,CAAA;IACF,CAAC;IAED,IAAI,eAAe,GAAG,UAAU,CAAA;IAEhC,kFAAkF;IAClF,MAAM,QAAQ,GACb,YAAY;QACZ,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YACjC,KAAK,EAAE;gBACN,EAAE,EAAE,YAAY;aAChB;SACD,CAAC,CAAC,CAAA;IAEJ,IACC,CAAC,eAAe;QAChB,QAAQ;QACR,QAAQ,CAAC,0BAA0B;QACnC,QAAQ,CAAC,uCAAuC,KAAK,gBAAgB,EACpE,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAA;QAC5E,IAAI,cAAc,EAAE,CAAC;YACpB,eAAe,GAAG,cAAc,CAAC,IAAI,CAAA;QACtC,CAAC;IACF,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAA;IAE/C,gEAAgE;IAChE,IAAI,oBAAoB,GAAG;QAC1B,GAAG,uBAAuB,CAAC;YAC1B,SAAS;YACT,KAAK;YACL,OAAO;YACP,IAAI;YACJ,cAAc;YACd,eAAe;YACf,eAAe;YACf,qBAAqB;YACrB,SAAS;YACT,aAAa;SACb,CAAC;QACF,KAAK,EAAE;YACN;gBACC,MAAM,EAAE,iBAAiB;gBACzB,WAAW,EAAE,uBAAuB,WAAW,CAAC,OAAO,CAAC,EAAE;gBAC1D,WAAW,EAAE,gBAAgB;aAC7B;SACD;KAC+B,CAAA;IAEjC,IAAI,eAAe,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,2BAA2B,CAC3D,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB;YACC,iBAAiB,EAAE,IAAI;YACvB,2BAA2B,EAAE,cAAc;YAC3C,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,MAAM,EAAE,eAAe,CAAC,EAAE;YAC1B,UAAU,EAAE,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YAC9D,WAAW,EAAE,OAAO,CAAC,IAAI;SACzB,CACD,CAAA;QACD,IACC,UAAU,CAAC,GAAG;YACd,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,4BAA4B,EACnD,CAAC;YACF,OAAO,UAAU,CAAA;QAClB,CAAC;QAED,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,oBAAoB,GAAG;gBACtB,GAAG,UAAU,CAAC,GAAG;gBACjB,QAAQ,EAAE;oBACT,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ;oBAC1B,UAAU,EAAE,eAAe;iBAC3B;gBACD,gBAAgB,EAAE;oBACjB,GAAG,UAAU,CAAC,GAAG,CAAC,gBAAgB;oBAClC,UAAU,EAAE,eAAe;iBAC3B;aACD,CAAA;QACF,CAAC;IACF,CAAC;IAED,OAAO,MAAM,YAAY,CACxB,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAqB,CAC9D,CAAA;AACF,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,EAChC,SAAS,EACT,KAAK,EACL,IAAI,EACJ,qBAAqB,EACrB,OAAO,EACP,IAAI,EACJ,cAAc,EACd,UAAU,EACV,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,aAAa,GAiBb,EAAyB,EAAE;IAC3B,OAAO;QACN,EAAE,EAAE,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;QACtC,aAAa,EAAE,CAAC;QAChB,0BAA0B,EAAE,IAAI;QAChC,SAAS,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzD,UAAU,EAAE,KAAK,CAAC,KAAe;QACjC,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,SAAS,EAAE,KAAK,CAAC,MAAM;QACvB,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,IAAI,qBAAqB;QAClE,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE;QACxB,mBAAmB,EAAE,mBAAmB;QACxC,WAAW,EAAE,yCAAyC;QACtD,MAAM,EAAE,uDAAuD,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE;QAC3F,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,oBAAoB,SAAS,EAAE;QAC3D,GAAG,CAAC,qBAAqB;YACxB,CAAC,CAAC;gBACA,SAAS,EAAE;oBACV,OAAO,EAAE;wBACR,EAAE,EAAE,qBAAqB;qBACzB;iBACD;aACD;YACF,CAAC,CAAC,EAAE,CAAC;QACN,KAAK,EAAE,EAAE;QACT,mBAAmB,EAAE;YACpB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,cAAc;SAC9B;QACD,qBAAqB,EAAE,eAAe;QACtC,gBAAgB,EAAE;YACjB,IAAI;YACJ,cAAc;YACd,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;YACjC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC;QACD,SAAS,EAAE;YACV,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,CAAC;SACX;QACD,QAAQ,EAAE;YACT,OAAO,EAAE,mBAAmB;YAC5B,aAAa;YACb,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;YACjC,IAAI;YACJ,cAAc;YACd,UAAU;YACV,GAAG,CAAC,eAAe,IAAI,qBAAqB;gBAC3C,CAAC,CAAC,EAAE,qBAAqB,EAAE;gBAC3B,CAAC,CAAC,EAAE,CAAC;YACN,SAAS;SACT;KAC+B,CAAA;AAClC,CAAC,CAAA"}
1
+ {"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../src/reservation/invoice.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAGN,MAAM,GAGN,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAuBhD,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,EACpD,qBASC,EACD,SAGC,EACyB,EAAE;IAC5B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IACzC,MAAM,iBAAiB,GACtB,qBAAqB,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,CAAA;IAC1D,IACC,CAAC,iBAAiB;QAClB,qBAAqB,CAAC,qBAAqB,KAAK,SAAS,CAAC,eAAe,EACxE,CAAC;QACF,OAAO,IAAI,EAAE,CAAC,qBAAgC,CAAC,CAAA;IAChD,CAAC;IAED,4EAA4E;IAE5E,IAAI,MAAM,GAAkB;QAC3B,qBAAqB,EAAE,SAAS,CAAC,eAAe;QAChD,UAAU,EAAE,SAAS,CAAC,UAAU;KAChC,CAAA;IAED,yEAAyE;IACzE,IAAI,iBAAiB,EAAE,CAAC;QACvB,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,2BAA2B,CACvD,SAAS,CAAC,UAAU,EACpB,qBAAqB,CACrB,CAAA;YACD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAA;gBACzC,MAAM,YAAY,GAAG,SAAS;oBAC7B,CAAC,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,CACzC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CACpD;oBACF,CAAC,CAAC,SAAS,CAAA;gBAEZ,MAAM,iBAAiB,GAAG,YAAY,EAAE,MAAM;oBAC7C,CAAC,CAAC;wBACA,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;qBAC9C;oBACF,CAAC,CAAC,SAAS,CAAA;gBAEZ,MAAM,GAAG;oBACR,GAAG,MAAM;oBACT,GAAG,IAAI;oBACP,GAAG,CAAC,SAAS,IAAI,iBAAiB;wBACjC,CAAC,CAAC;4BACA,SAAS,EAAE;gCACV,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;gCACpB,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;6BAC5B;yBACD;wBACF,CAAC,CAAC,EAAE,CAAC;oBACN,QAAQ,EAAE;wBACT,GAAG,MAAM,CAAC,QAAQ;wBAClB,UAAU,EAAE,SAAS,CAAC,UAAU;qBAChC;oBACD,gBAAgB,EAAE;wBACjB,GAAG,MAAM,CAAC,gBAAgB;wBAC1B,UAAU,EAAE,SAAS,CAAC,UAAU;qBAChC;iBACD,CAAA;YACF,CAAC;YACD,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;gBACpE,OAAO,MAAM,CAAA;YACd,CAAC;QACF,CAAC;aAAM,IAAI,qBAAqB,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACrD,6CAA6C;YAC7C,MAAM,GAAG;gBACR,SAAS,EAAE;oBACV,UAAU,EAAE,qBAAqB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC1D,EAAE;qBACF,CAAC,CAAC;iBACH;aACD,CAAA;QACF,CAAC;IACF,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,YAAY,CAC/B,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,CACtD,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAA;IAE/C,iGAAiG;IACjG,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC3D,IACC,CAAC,qBAAqB,CAAC,QAAQ;YAC9B,OAAO,CAAC,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC,qBAAqB,CAAC,QAAQ,EAC9B,CAAC;YACF,OAAO,GAAG,MAAM,YAAY,CAC3B,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,EAAE;gBAC9C,GAAG,MAAM;gBACT,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,OAAO;aACf,CAAC,CACF,CAAA;QACF,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,CAAA;IACf,CAAC;IAED,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,GAAc,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC9C,UAAU,EACV,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,OAAO,EACP,KAAK,EACL,eAAe,GACiB,EAA2B,EAAE;IAC7D,IAAI,eAAe,EAAE,CAAC;QACrB,iEAAiE;QACjE,OAAO,MAAM,YAAY,CACxB,MAAM,CAAC,aAAa,CACnB,uBAAuB,CAAC;YACvB,KAAK;YACL,OAAO;YACP,IAAI;YACJ,cAAc;YACd,eAAe;YACf,eAAe;YACf,qBAAqB;YACrB,SAAS;YACT,aAAa;SACb,CAAC,CACkB,CACrB,CAAA;IACF,CAAC;IAED,IAAI,eAAe,GAAG,UAAU,CAAA;IAEhC,kFAAkF;IAClF,MAAM,QAAQ,GACb,YAAY;QACZ,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YACjC,KAAK,EAAE;gBACN,EAAE,EAAE,YAAY;aAChB;SACD,CAAC,CAAC,CAAA;IAEJ,IACC,CAAC,eAAe;QAChB,QAAQ;QACR,QAAQ,CAAC,0BAA0B;QACnC,QAAQ,CAAC,uCAAuC,KAAK,gBAAgB,EACpE,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAA;QAC5E,IAAI,cAAc,EAAE,CAAC;YACpB,eAAe,GAAG,cAAc,CAAC,IAAI,CAAA;QACtC,CAAC;IACF,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAA;IAE/C,gEAAgE;IAChE,IAAI,oBAAoB,GAAG;QAC1B,GAAG,uBAAuB,CAAC;YAC1B,KAAK;YACL,OAAO;YACP,IAAI;YACJ,cAAc;YACd,eAAe;YACf,eAAe;YACf,qBAAqB;YACrB,SAAS;YACT,aAAa;SACb,CAAC;QACF,KAAK,EAAE;YACN;gBACC,MAAM,EAAE,iBAAiB;gBACzB,WAAW,EAAE,uBAAuB,WAAW,CAAC,OAAO,CAAC,EAAE;gBAC1D,WAAW,EAAE,gBAAgB;aAC7B;SACD;KAC+B,CAAA;IAEjC,IAAI,eAAe,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,2BAA2B,CAC3D,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB;YACC,iBAAiB,EAAE,IAAI;YACvB,2BAA2B,EAAE,cAAc;YAC3C,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,MAAM,EAAE,eAAe,CAAC,EAAE;YAC1B,UAAU,EAAE,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YAC9D,WAAW,EAAE,OAAO,CAAC,IAAI;SACzB,CACD,CAAA;QACD,IACC,UAAU,CAAC,GAAG;YACd,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,4BAA4B,EACnD,CAAC;YACF,OAAO,UAAU,CAAA;QAClB,CAAC;QAED,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,oBAAoB,GAAG;gBACtB,GAAG,UAAU,CAAC,GAAG;gBACjB,QAAQ,EAAE;oBACT,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ;oBAC1B,UAAU,EAAE,eAAe;iBAC3B;gBACD,gBAAgB,EAAE;oBACjB,GAAG,UAAU,CAAC,GAAG,CAAC,gBAAgB;oBAClC,UAAU,EAAE,eAAe;iBAC3B;aACD,CAAA;QACF,CAAC;IACF,CAAC;IAED,OAAO,MAAM,YAAY,CACxB,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAqB,CAC9D,CAAA;AACF,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,EAChC,SAAS,EACT,KAAK,EACL,IAAI,EACJ,qBAAqB,EACrB,OAAO,EACP,IAAI,EACJ,cAAc,EACd,UAAU,EACV,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,aAAa,GAiBb,EAAyB,EAAE;IAC3B,OAAO;QACN,EAAE,EAAE,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;QACtC,aAAa,EAAE,CAAC;QAChB,0BAA0B,EAAE,IAAI;QAChC,SAAS,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzD,UAAU,EAAE,KAAK,CAAC,KAAe;QACjC,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,SAAS,EAAE,KAAK,CAAC,MAAM;QACvB,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,IAAI,qBAAqB;QAClE,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE;QACxB,mBAAmB,EAAE,mBAAmB;QACxC,WAAW,EAAE,yCAAyC;QACtD,MAAM,EAAE,uDAAuD,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE;QAC3F,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,oBAAoB,SAAS,EAAE;QAC3D,GAAG,CAAC,qBAAqB;YACxB,CAAC,CAAC;gBACA,SAAS,EAAE;oBACV,OAAO,EAAE;wBACR,EAAE,EAAE,qBAAqB;qBACzB;iBACD;aACD;YACF,CAAC,CAAC,EAAE,CAAC;QACN,KAAK,EAAE,EAAE;QACT,mBAAmB,EAAE;YACpB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,cAAc;SAC9B;QACD,qBAAqB,EAAE,eAAe;QACtC,gBAAgB,EAAE;YACjB,IAAI;YACJ,cAAc;YACd,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;YACjC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC;QACD,SAAS,EAAE;YACV,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,CAAC;SACX;QACD,QAAQ,EAAE;YACT,OAAO,EAAE,mBAAmB;YAC5B,aAAa;YACb,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;YACjC,IAAI;YACJ,cAAc;YACd,UAAU;YACV,GAAG,CAAC,eAAe,IAAI,qBAAqB;gBAC3C,CAAC,CAAC,EAAE,qBAAqB,EAAE;gBAC3B,CAAC,CAAC,EAAE,CAAC;YACN,SAAS;SACT;KAC+B,CAAA;AAClC,CAAC,CAAA"}
@@ -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.js';
3
+ import type { ReserveVehicleParams } from './types';
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,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
+ {"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,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,3 +35,4 @@ 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.js';
3
+ import type { ReserveVehicleParams } from './types';
4
4
  export declare const reserveVehicle: (vehicleId: string, unprocessed: ReserveVehicleParams) => PromisedResult<SubscriptionReservation>;
5
5
  //# sourceMappingURL=reserve.d.ts.map