@sellout/models 0.0.185 → 0.0.186-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dist/interfaces/ICreateOrderParams.d.ts +0 -2
- package/.dist/interfaces/IOrder.d.ts +1 -2
- package/.dist/interfaces/IOrder.js.map +1 -1
- package/.dist/interfaces/IOrderSummary.d.ts +0 -1
- package/.dist/schemas/Order.d.ts +0 -81
- package/.dist/schemas/Order.js +0 -81
- package/.dist/schemas/Order.js.map +1 -1
- package/.dist/sellout-proto.js +118 -629
- package/.dist/utils/OrderUtil.js +123 -1
- package/.dist/utils/OrderUtil.js.map +1 -1
- package/.dist/utils/PaymentUtil.d.ts +2 -1
- package/.dist/utils/PaymentUtil.js +198 -180
- package/.dist/utils/PaymentUtil.js.map +1 -1
- package/package.json +3 -3
- package/src/interfaces/ICreateOrderParams.ts +0 -2
- package/src/interfaces/IOrder.ts +1 -2
- package/src/interfaces/IOrderSummary.ts +0 -1
- package/src/proto/email.proto +2 -0
- package/src/proto/event.proto +3 -0
- package/src/proto/order.proto +1 -24
- package/src/schemas/Order.ts +0 -81
- package/src/utils/OrderUtil.ts +137 -1
- package/src/utils/PaymentUtil.ts +269 -221
- package/.dist/graphql/mutations/sendSeasonOrderReceiptEmail.mutation.d.ts +0 -2
- package/.dist/graphql/mutations/sendSeasonOrderReceiptEmail.mutation.js +0 -13
- package/.dist/graphql/mutations/sendSeasonOrderReceiptEmail.mutation.js.map +0 -1
- package/src/graphql/mutations/sendSeasonOrderReceiptEmail.mutation.ts +0 -9
package/src/proto/event.proto
CHANGED
|
@@ -72,6 +72,8 @@ message PublicEvent {
|
|
|
72
72
|
int32 endsAt = 23;
|
|
73
73
|
string venue = 24;
|
|
74
74
|
string status = 25;
|
|
75
|
+
string venueTimezone = 26;
|
|
76
|
+
int32 announceAt = 27;
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
message PublicEventDetails {
|
|
@@ -304,6 +306,7 @@ message QueryEventsResponse {
|
|
|
304
306
|
|
|
305
307
|
message QueryEventsListRequest {
|
|
306
308
|
string spanContext = 0;
|
|
309
|
+
string orgId = 1;
|
|
307
310
|
}
|
|
308
311
|
|
|
309
312
|
|
package/src/proto/order.proto
CHANGED
|
@@ -39,7 +39,6 @@ message Order {
|
|
|
39
39
|
bool hidden = 28;
|
|
40
40
|
bool printed = 29;
|
|
41
41
|
string parentSeasonOrderId = 30;
|
|
42
|
-
repeated orderFees fees = 31;
|
|
43
42
|
}
|
|
44
43
|
message ProcessingFees {
|
|
45
44
|
Refund refund = 0;
|
|
@@ -68,28 +67,6 @@ message OrderTicket {
|
|
|
68
67
|
bool guestTicket = 18;
|
|
69
68
|
}
|
|
70
69
|
|
|
71
|
-
message orderFees {
|
|
72
|
-
string _id = 0;
|
|
73
|
-
string name = 1;
|
|
74
|
-
string orgId = 2;
|
|
75
|
-
string eventId = 3;
|
|
76
|
-
string type = 4;
|
|
77
|
-
double value = 5;
|
|
78
|
-
string appliedTo = 6;
|
|
79
|
-
string appliedBy = 7;
|
|
80
|
-
int32 minAppliedToPrice = 8;
|
|
81
|
-
int32 maxAppliedToPrice = 9;
|
|
82
|
-
repeated string filters = 10;
|
|
83
|
-
string createdBy = 11;
|
|
84
|
-
int32 createdAt = 12;
|
|
85
|
-
string updatedBy = 13;
|
|
86
|
-
int32 updatedAt = 14;
|
|
87
|
-
bool disabled = 15;
|
|
88
|
-
string seasonId = 16;
|
|
89
|
-
int32 amount = 17;
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
|
|
93
70
|
message TeiMemberInfoParams {
|
|
94
71
|
string firstName = 0;
|
|
95
72
|
string lastName = 1;
|
|
@@ -638,7 +615,7 @@ service OrderService {
|
|
|
638
615
|
rpc createSeasonOrderPaymentIntent(CreateSeasonOrderPaymentIntentRequest) returns (CreateOrderPaymentIntentResponse) {}
|
|
639
616
|
// QR Code
|
|
640
617
|
rpc sendOrderQRCodeEmail(SendOrderQRCodeEmailRequest) returns (SendOrderQRCodeEmailResponse) {}
|
|
641
|
-
rpc sendSeasonOrderReceiptEmail(
|
|
618
|
+
rpc sendSeasonOrderReceiptEmail(SendOrderQRCodeEmailRequest) returns (SendOrderQRCodeEmailResponse) {}
|
|
642
619
|
rpc sendOrderReceiptEmail(SendOrderReceiptEmailRequest) returns (SendOrderReceiptEmailResponse) {}
|
|
643
620
|
rpc sendOrderRefundEmail(SendOrderRefundEmailRequest) returns (SendOrderRefundEmailResponse) {}
|
|
644
621
|
rpc resendOrderRefundEmail(SendOrderRefundEmailRequest) returns (SendOrderRefundEmailResponse) {}
|
package/src/schemas/Order.ts
CHANGED
|
@@ -46,86 +46,6 @@ const Scan = {
|
|
|
46
46
|
required: false,
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
const Fees = {
|
|
50
|
-
_id: {
|
|
51
|
-
type: String,
|
|
52
|
-
required: false,
|
|
53
|
-
},
|
|
54
|
-
name: {
|
|
55
|
-
type: String,
|
|
56
|
-
required: false,
|
|
57
|
-
},
|
|
58
|
-
orgId: {
|
|
59
|
-
type: String,
|
|
60
|
-
required: false,
|
|
61
|
-
default: null,
|
|
62
|
-
},
|
|
63
|
-
eventId: {
|
|
64
|
-
type: String,
|
|
65
|
-
required: false,
|
|
66
|
-
default: null,
|
|
67
|
-
}, seasonId: {
|
|
68
|
-
type: String,
|
|
69
|
-
required: false,
|
|
70
|
-
default: null,
|
|
71
|
-
},
|
|
72
|
-
type: {
|
|
73
|
-
type: String,
|
|
74
|
-
required: false,
|
|
75
|
-
},
|
|
76
|
-
value: {
|
|
77
|
-
type: Number,
|
|
78
|
-
required: false,
|
|
79
|
-
},
|
|
80
|
-
appliedTo: {
|
|
81
|
-
type: String,
|
|
82
|
-
required: false,
|
|
83
|
-
},
|
|
84
|
-
appliedBy: {
|
|
85
|
-
type: String,
|
|
86
|
-
required: false,
|
|
87
|
-
},
|
|
88
|
-
minAppliedToPrice: {
|
|
89
|
-
type: Number,
|
|
90
|
-
required: false,
|
|
91
|
-
default: null,
|
|
92
|
-
},
|
|
93
|
-
maxAppliedToPrice: {
|
|
94
|
-
type: Number,
|
|
95
|
-
required: false,
|
|
96
|
-
default: null,
|
|
97
|
-
},
|
|
98
|
-
filters: [{
|
|
99
|
-
type: String,
|
|
100
|
-
required: false,
|
|
101
|
-
default: [],
|
|
102
|
-
}],
|
|
103
|
-
createdBy: {
|
|
104
|
-
type: String,
|
|
105
|
-
required: false,
|
|
106
|
-
},
|
|
107
|
-
createdAt: {
|
|
108
|
-
type: Number,
|
|
109
|
-
required: false,
|
|
110
|
-
},
|
|
111
|
-
updatedBy: {
|
|
112
|
-
type: String,
|
|
113
|
-
required: false,
|
|
114
|
-
},
|
|
115
|
-
updatedAt: {
|
|
116
|
-
type: Number,
|
|
117
|
-
required: false,
|
|
118
|
-
},
|
|
119
|
-
disabled: {
|
|
120
|
-
type: Boolean,
|
|
121
|
-
required: false,
|
|
122
|
-
default: false,
|
|
123
|
-
},
|
|
124
|
-
amount: {
|
|
125
|
-
type: Number,
|
|
126
|
-
required: false,
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
49
|
const TeiMemberInfoInput = {
|
|
130
50
|
firstName: {
|
|
131
51
|
type: String,
|
|
@@ -391,7 +311,6 @@ export default {
|
|
|
391
311
|
required: false,
|
|
392
312
|
},
|
|
393
313
|
tickets: [OrderTicket],
|
|
394
|
-
fees: [Fees],
|
|
395
314
|
upgrades: [OrderUpgrade],
|
|
396
315
|
recipientEmails: [{
|
|
397
316
|
type: String,
|
package/src/utils/OrderUtil.ts
CHANGED
|
@@ -28,7 +28,7 @@ export default {
|
|
|
28
28
|
upgrades: order.upgrades.filter(upgrade => upgrade.paymentId === payment._id),
|
|
29
29
|
fees: fees,
|
|
30
30
|
paymentMethodType: payment.paymentMethodType,
|
|
31
|
-
})
|
|
31
|
+
})
|
|
32
32
|
}, 0);
|
|
33
33
|
} else {
|
|
34
34
|
if (
|
|
@@ -131,6 +131,121 @@ export default {
|
|
|
131
131
|
}
|
|
132
132
|
},
|
|
133
133
|
|
|
134
|
+
// orderTotalExport(order: IOrder, fees: any[]): number {
|
|
135
|
+
// if (order?.payments && order?.payments.length > 0) {
|
|
136
|
+
// return order.payments.reduce((cur: number, payment: IPayment): number => {
|
|
137
|
+
// const paymentTickets = order.tickets.filter(ticket => ticket.paymentId === payment._id)
|
|
138
|
+
// const paymentUpgrades = order.upgrades.filter(upgrade => upgrade.paymentId === payment._id)
|
|
139
|
+
// const total = PaymentUtil.calculatePaymentTotalDublicate({
|
|
140
|
+
// tickets: paymentTickets,
|
|
141
|
+
// upgrades: paymentUpgrades,
|
|
142
|
+
// fees: fees,
|
|
143
|
+
// paymentMethodType: payment.paymentMethodType,
|
|
144
|
+
// })
|
|
145
|
+
// return cur + total
|
|
146
|
+
// }, 0);
|
|
147
|
+
// } else {
|
|
148
|
+
// if (
|
|
149
|
+
// (!order.tickets || !order.tickets.length) &&
|
|
150
|
+
// (!order.upgrades || !order.upgrades.length)
|
|
151
|
+
// )
|
|
152
|
+
// return 0;
|
|
153
|
+
|
|
154
|
+
// if (!order.tickets) order.tickets = [];
|
|
155
|
+
// if (!order.upgrades) order.upgrades = [];
|
|
156
|
+
|
|
157
|
+
// const ticketFees = fees.filter(f => f.appliedTo === "Ticket");
|
|
158
|
+
// const upgradeFees = fees.filter(f => f.appliedTo === "Upgrade");
|
|
159
|
+
// let orderFees = fees.filter(f => f.appliedTo === "Order");
|
|
160
|
+
|
|
161
|
+
// function applyTicketFee(ticket, fee) {
|
|
162
|
+
// if (fee.filters.includes("Seated") && !ticket.seat) return 0;
|
|
163
|
+
// const noMax = fee.maxAppliedToPrice === 0;
|
|
164
|
+
// if (
|
|
165
|
+
// (fee.minAppliedToPrice <= ticket.price &&
|
|
166
|
+
// ticket.price <= fee.maxAppliedToPrice) ||
|
|
167
|
+
// noMax
|
|
168
|
+
// ) {
|
|
169
|
+
// if (fee.type === "Flat") {
|
|
170
|
+
// return fee.value;
|
|
171
|
+
// }
|
|
172
|
+
// if (fee.type === "Percent") {
|
|
173
|
+
// return (ticket.price * fee.value) / 100;
|
|
174
|
+
// }
|
|
175
|
+
// } else {
|
|
176
|
+
// return 0;
|
|
177
|
+
// }
|
|
178
|
+
// }
|
|
179
|
+
|
|
180
|
+
// function applyUpgradeFee(upgrade, fee) {
|
|
181
|
+
// const noMax = fee.maxAppliedToPrice === 0;
|
|
182
|
+
// if (
|
|
183
|
+
// (fee.minAppliedToPrice <= upgrade.price &&
|
|
184
|
+
// upgrade.price <= fee.minAppliedToPrice) ||
|
|
185
|
+
// noMax
|
|
186
|
+
// ) {
|
|
187
|
+
// if (fee.type === "Flat") {
|
|
188
|
+
// return fee.value;
|
|
189
|
+
// }
|
|
190
|
+
// if (fee.type === "Percent") {
|
|
191
|
+
// return (upgrade.price * fee.value) / 100;
|
|
192
|
+
// }
|
|
193
|
+
// } else {
|
|
194
|
+
// return 0;
|
|
195
|
+
// }
|
|
196
|
+
// }
|
|
197
|
+
|
|
198
|
+
// function applyOrderFee(orderSubtotal, fee) {
|
|
199
|
+
// if (fee.type === "Flat") {
|
|
200
|
+
// return orderSubtotal + fee.value;
|
|
201
|
+
// }
|
|
202
|
+
// if (fee.type === "Percent") {
|
|
203
|
+
// return orderSubtotal / (1 - fee.value / 100);
|
|
204
|
+
// }
|
|
205
|
+
// }
|
|
206
|
+
|
|
207
|
+
// const ticketTotal = order.tickets.reduce(
|
|
208
|
+
// (cur, ticket) => cur + ticket.price,
|
|
209
|
+
// 0
|
|
210
|
+
// );
|
|
211
|
+
|
|
212
|
+
// const ticketFeeTotal = order.tickets.reduce((cur, ticket) => {
|
|
213
|
+
// return (
|
|
214
|
+
// cur +
|
|
215
|
+
// ticketFees.reduce((cur, fee) => cur + applyTicketFee(ticket, fee), 0)
|
|
216
|
+
// );
|
|
217
|
+
// }, 0);
|
|
218
|
+
|
|
219
|
+
// const upgradeTotal = order.upgrades.reduce(
|
|
220
|
+
// (cur, upgrade) => cur + upgrade.price,
|
|
221
|
+
// 0
|
|
222
|
+
// );
|
|
223
|
+
|
|
224
|
+
// const upgradeFeeTotal = order.upgrades.reduce((cur, upgrade) => {
|
|
225
|
+
// return (
|
|
226
|
+
// cur +
|
|
227
|
+
// upgradeFees.reduce((cur, fee) => cur + applyUpgradeFee(upgrade, fee), 0)
|
|
228
|
+
// );
|
|
229
|
+
// }, 0);
|
|
230
|
+
// const orderSubtotal =
|
|
231
|
+
// ticketTotal + ticketFeeTotal + upgradeTotal + upgradeFeeTotal;
|
|
232
|
+
|
|
233
|
+
// // Order matters here. Flat type fees must be
|
|
234
|
+
// // applied before Percent type fees
|
|
235
|
+
// orderFees = orderFees.sort(({ type }) => {
|
|
236
|
+
// if (type === "Flat") return -1;
|
|
237
|
+
// return 1;
|
|
238
|
+
// });
|
|
239
|
+
|
|
240
|
+
// const orderTotal = orderFees.reduce((cur, fee) => {
|
|
241
|
+
// return applyOrderFee(cur, fee);
|
|
242
|
+
// }, orderSubtotal);
|
|
243
|
+
|
|
244
|
+
// return Math.round(orderTotal);
|
|
245
|
+
// }
|
|
246
|
+
// },
|
|
247
|
+
|
|
248
|
+
|
|
134
249
|
|
|
135
250
|
guestFees(order: IOrder, fees: IFee[]): any {
|
|
136
251
|
let guestTicketFees = fees.find(
|
|
@@ -175,6 +290,10 @@ export default {
|
|
|
175
290
|
const orderTotal = this.orderTotal(order, fees);
|
|
176
291
|
return orderTotal - (order.refundedAmount || 0);
|
|
177
292
|
},
|
|
293
|
+
// orderExportTotalWithRefund(order, fees) {
|
|
294
|
+
// const orderTotal = this.orderTotalExport(order, fees);
|
|
295
|
+
// return orderTotal - (order.refundedAmount || 0);
|
|
296
|
+
// },
|
|
178
297
|
orderTransferAmountWithRefund(order, fees) {
|
|
179
298
|
const promoterFees = FeeUtil.promoterFees(fees);
|
|
180
299
|
return this.orderTotalWithRefund(order, promoterFees);
|
|
@@ -238,6 +357,12 @@ export default {
|
|
|
238
357
|
return this.orderTotal(order, fees) - this.orderSubtotal(order);
|
|
239
358
|
},
|
|
240
359
|
|
|
360
|
+
// selloutExortFees(order, fees) {
|
|
361
|
+
// if (!order.tickets) order.tickets = [];
|
|
362
|
+
// if (!order.upgrades) order.upgrades = [];
|
|
363
|
+
// fees = FeeUtil.selloutFees(fees);
|
|
364
|
+
// return this.orderTotalExport(order, fees) - this.orderSubtotal(order);
|
|
365
|
+
// },
|
|
241
366
|
// This one is special because stripe fees
|
|
242
367
|
// can be applied as a percentage
|
|
243
368
|
stripeFees(order, fees) {
|
|
@@ -252,6 +377,17 @@ export default {
|
|
|
252
377
|
return stripeFeeT;
|
|
253
378
|
},
|
|
254
379
|
|
|
380
|
+
// stripeFeesExport(order, fees) {
|
|
381
|
+
// if (!order.tickets) order.tickets = [];
|
|
382
|
+
// if (!order.upgrades) order.upgrades = [];
|
|
383
|
+
// const total = this.orderTotalExport(order, fees);
|
|
384
|
+
// const subtotal = this.orderSubtotal(order);
|
|
385
|
+
// const selloutFees = this.selloutExortFees(order, fees);
|
|
386
|
+
// const promoterFees = this.promoterFees(order, fees);
|
|
387
|
+
// let stripeFee = total - subtotal - selloutFees - promoterFees;
|
|
388
|
+
// let stripeFeeT = stripeFee < 0 ? 0 : stripeFee;
|
|
389
|
+
// return stripeFeeT;
|
|
390
|
+
// },
|
|
255
391
|
promoterFees(order, fees) {
|
|
256
392
|
if (!order.tickets) order.tickets = [];
|
|
257
393
|
if (!order.upgrades) order.upgrades = [];
|