@sellout/models 0.0.148 → 0.0.150

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 (75) hide show
  1. package/.dist/graphql/fragments/event.fragment.js +2 -0
  2. package/.dist/graphql/fragments/event.fragment.js.map +1 -1
  3. package/.dist/graphql/fragments/order.fragment.js +2 -0
  4. package/.dist/graphql/fragments/order.fragment.js.map +1 -1
  5. package/.dist/graphql/mutations/breakApartOrder.js +1 -0
  6. package/.dist/graphql/mutations/breakApartOrder.js.map +1 -1
  7. package/.dist/graphql/mutations/createEvent.mutation.js +2 -0
  8. package/.dist/graphql/mutations/createEvent.mutation.js.map +1 -1
  9. package/.dist/graphql/mutations/publishEvent.mutation.js +2 -0
  10. package/.dist/graphql/mutations/publishEvent.mutation.js.map +1 -1
  11. package/.dist/graphql/mutations/sendUserPhoneAuthentication.mutation.js +2 -2
  12. package/.dist/graphql/mutations/updateEvent.mutation.js +2 -0
  13. package/.dist/graphql/mutations/updateEvent.mutation.js.map +1 -1
  14. package/.dist/graphql/queries/event.query.js +2 -0
  15. package/.dist/graphql/queries/event.query.js.map +1 -1
  16. package/.dist/graphql/queries/events.query.js +2 -0
  17. package/.dist/graphql/queries/events.query.js.map +1 -1
  18. package/.dist/graphql/queries/order.query.js +2 -0
  19. package/.dist/graphql/queries/order.query.js.map +1 -1
  20. package/.dist/graphql/queries/orders.query.js +1 -0
  21. package/.dist/graphql/queries/orders.query.js.map +1 -1
  22. package/.dist/graphql/queries/promoCodeVerify.query.js +1 -0
  23. package/.dist/graphql/queries/promoCodeVerify.query.js.map +1 -1
  24. package/.dist/graphql/queries/publicEvent.query.js +2 -0
  25. package/.dist/graphql/queries/publicEvent.query.js.map +1 -1
  26. package/.dist/interfaces/ICreateOrderParams.d.ts +3 -0
  27. package/.dist/interfaces/IEvent.d.ts +2 -0
  28. package/.dist/interfaces/IEvent.js.map +1 -1
  29. package/.dist/interfaces/IOrderSummary.d.ts +1 -0
  30. package/.dist/interfaces/IOrderTicket.d.ts +2 -1
  31. package/.dist/interfaces/IOrderTicket.js.map +1 -1
  32. package/.dist/interfaces/IPerformance.d.ts +2 -1
  33. package/.dist/interfaces/IScan.d.ts +1 -0
  34. package/.dist/interfaces/ITicketType.d.ts +3 -0
  35. package/.dist/schemas/Event.d.ts +33 -2
  36. package/.dist/schemas/Event.js +33 -11
  37. package/.dist/schemas/Event.js.map +1 -1
  38. package/.dist/schemas/Order.d.ts +15 -1
  39. package/.dist/schemas/Order.js +12 -3
  40. package/.dist/schemas/Order.js.map +1 -1
  41. package/.dist/sellout-proto.js +957 -36
  42. package/.dist/utils/EventUtil.d.ts +2 -1
  43. package/.dist/utils/EventUtil.js +87 -7
  44. package/.dist/utils/EventUtil.js.map +1 -1
  45. package/.dist/utils/OrderUtil.js +3 -1
  46. package/.dist/utils/OrderUtil.js.map +1 -1
  47. package/package.json +3 -3
  48. package/src/graphql/fragments/event.fragment.ts +2 -0
  49. package/src/graphql/fragments/order.fragment.ts +2 -0
  50. package/src/graphql/mutations/breakApartOrder.ts +1 -0
  51. package/src/graphql/mutations/createEvent.mutation.ts +2 -0
  52. package/src/graphql/mutations/publishEvent.mutation.ts +2 -0
  53. package/src/graphql/mutations/sendUserPhoneAuthentication.mutation.ts +2 -2
  54. package/src/graphql/mutations/updateEvent.mutation.ts +2 -0
  55. package/src/graphql/queries/event.query.ts +2 -0
  56. package/src/graphql/queries/events.query.ts +2 -0
  57. package/src/graphql/queries/order.query.ts +2 -0
  58. package/src/graphql/queries/orders.query.ts +1 -0
  59. package/src/graphql/queries/promoCodeVerify.query.ts +1 -0
  60. package/src/graphql/queries/publicEvent.query.ts +2 -0
  61. package/src/interfaces/ICreateOrderParams.ts +4 -0
  62. package/src/interfaces/IEvent.ts +4 -2
  63. package/src/interfaces/IOrderSummary.ts +1 -0
  64. package/src/interfaces/IOrderTicket.ts +2 -1
  65. package/src/interfaces/IPerformance.ts +2 -1
  66. package/src/interfaces/IScan.ts +1 -0
  67. package/src/interfaces/ITicketType.ts +4 -1
  68. package/src/proto/email.proto +21 -0
  69. package/src/proto/event.proto +5 -1
  70. package/src/proto/order.proto +4 -1
  71. package/src/proto/user.proto +1 -0
  72. package/src/schemas/Event.ts +25 -3
  73. package/src/schemas/Order.ts +12 -3
  74. package/src/utils/EventUtil.ts +113 -23
  75. package/src/utils/OrderUtil.ts +96 -94
@@ -20,115 +20,115 @@ export default {
20
20
  Order
21
21
  *****************************************************************************************/
22
22
  orderTotal(order: IOrder, fees: any[]): number {
23
- if(order.payments && order.payments.length > 0) {
24
- return order.payments.reduce((cur: number, payment: IPayment): number => {
25
- return cur + PaymentUtil.calculatePaymentTotal({
26
- tickets: order.tickets.filter(ticket => ticket.paymentId === payment._id),
27
- upgrades: order.upgrades.filter(upgrade => upgrade.paymentId === payment._id),
28
- fees: fees,
29
- paymentMethodType: payment.paymentMethodType,
30
- })
31
- }, 0);
32
- } else {
33
- if (
34
- (!order.tickets || !order.tickets.length) &&
35
- (!order.upgrades || !order.upgrades.length)
36
- )
37
- return 0;
23
+ if (order.payments && order.payments.length > 0) {
24
+ return order.payments.reduce((cur: number, payment: IPayment): number => {
25
+ return cur + PaymentUtil.calculatePaymentTotal({
26
+ tickets: order.tickets.filter(ticket => ticket.paymentId === payment._id),
27
+ upgrades: order.upgrades.filter(upgrade => upgrade.paymentId === payment._id),
28
+ fees: fees,
29
+ paymentMethodType: payment.paymentMethodType,
30
+ })
31
+ }, 0);
32
+ } else {
33
+ if (
34
+ (!order.tickets || !order.tickets.length) &&
35
+ (!order.upgrades || !order.upgrades.length)
36
+ )
37
+ return 0;
38
38
 
39
- if (!order.tickets) order.tickets = [];
40
- if (!order.upgrades) order.upgrades = [];
39
+ if (!order.tickets) order.tickets = [];
40
+ if (!order.upgrades) order.upgrades = [];
41
41
 
42
- const ticketFees = fees.filter(f => f.appliedTo === "Ticket");
43
- const upgradeFees = fees.filter(f => f.appliedTo === "Upgrade");
44
- let orderFees = fees.filter(f => f.appliedTo === "Order");
42
+ const ticketFees = fees.filter(f => f.appliedTo === "Ticket");
43
+ const upgradeFees = fees.filter(f => f.appliedTo === "Upgrade");
44
+ let orderFees = fees.filter(f => f.appliedTo === "Order");
45
45
 
46
- function applyTicketFee(ticket, fee) {
47
- if (fee.filters.includes("Seated") && !ticket.seat) return 0;
48
- const noMax = fee.maxAppliedToPrice === 0;
49
- if (
50
- (fee.minAppliedToPrice <= ticket.price &&
51
- ticket.price <= fee.maxAppliedToPrice) ||
52
- noMax
53
- ) {
54
- if (fee.type === "Flat") {
55
- return fee.value;
46
+ function applyTicketFee(ticket, fee) {
47
+ if (fee.filters.includes("Seated") && !ticket.seat) return 0;
48
+ const noMax = fee.maxAppliedToPrice === 0;
49
+ if (
50
+ (fee.minAppliedToPrice <= ticket.price &&
51
+ ticket.price <= fee.maxAppliedToPrice) ||
52
+ noMax
53
+ ) {
54
+ if (fee.type === "Flat") {
55
+ return fee.value;
56
+ }
57
+ if (fee.type === "Percent") {
58
+ return (ticket.price * fee.value) / 100;
59
+ }
60
+ } else {
61
+ return 0;
56
62
  }
57
- if (fee.type === "Percent") {
58
- return (ticket.price * fee.value) / 100;
63
+ }
64
+
65
+ function applyUpgradeFee(upgrade, fee) {
66
+ const noMax = fee.maxAppliedToPrice === 0;
67
+ if (
68
+ (fee.minAppliedToPrice <= upgrade.price &&
69
+ upgrade.price <= fee.minAppliedToPrice) ||
70
+ noMax
71
+ ) {
72
+ if (fee.type === "Flat") {
73
+ return fee.value;
74
+ }
75
+ if (fee.type === "Percent") {
76
+ return (upgrade.price * fee.value) / 100;
77
+ }
78
+ } else {
79
+ return 0;
59
80
  }
60
- } else {
61
- return 0;
62
81
  }
63
- }
64
82
 
65
- function applyUpgradeFee(upgrade, fee) {
66
- const noMax = fee.maxAppliedToPrice === 0;
67
- if (
68
- (fee.minAppliedToPrice <= upgrade.price &&
69
- upgrade.price <= fee.minAppliedToPrice) ||
70
- noMax
71
- ) {
83
+ function applyOrderFee(orderSubtotal, fee) {
72
84
  if (fee.type === "Flat") {
73
- return fee.value;
85
+ return orderSubtotal + fee.value;
74
86
  }
75
87
  if (fee.type === "Percent") {
76
- return (upgrade.price * fee.value) / 100;
88
+ return orderSubtotal / (1 - fee.value / 100);
77
89
  }
78
- } else {
79
- return 0;
80
- }
81
- }
82
-
83
- function applyOrderFee(orderSubtotal, fee) {
84
- if (fee.type === "Flat") {
85
- return orderSubtotal + fee.value;
86
- }
87
- if (fee.type === "Percent") {
88
- return orderSubtotal / (1 - fee.value / 100);
89
90
  }
90
- }
91
-
92
- const ticketTotal = order.tickets.reduce(
93
- (cur, ticket) => cur + ticket.price,
94
- 0
95
- );
96
91
 
97
- const ticketFeeTotal = order.tickets.reduce((cur, ticket) => {
98
- return (
99
- cur +
100
- ticketFees.reduce((cur, fee) => cur + applyTicketFee(ticket, fee), 0)
92
+ const ticketTotal = order.tickets.reduce(
93
+ (cur, ticket) => cur + ticket.price,
94
+ 0
101
95
  );
102
- }, 0);
103
96
 
104
- const upgradeTotal = order.upgrades.reduce(
105
- (cur, upgrade) => cur + upgrade.price,
106
- 0
107
- );
97
+ const ticketFeeTotal = order.tickets.reduce((cur, ticket) => {
98
+ return (
99
+ cur +
100
+ ticketFees.reduce((cur, fee) => cur + applyTicketFee(ticket, fee), 0)
101
+ );
102
+ }, 0);
108
103
 
109
- const upgradeFeeTotal = order.upgrades.reduce((cur, upgrade) => {
110
- return (
111
- cur +
112
- upgradeFees.reduce((cur, fee) => cur + applyUpgradeFee(upgrade, fee), 0)
104
+ const upgradeTotal = order.upgrades.reduce(
105
+ (cur, upgrade) => cur + upgrade.price,
106
+ 0
113
107
  );
114
- }, 0);
115
108
 
116
- const orderSubtotal =
117
- ticketTotal + ticketFeeTotal + upgradeTotal + upgradeFeeTotal;
109
+ const upgradeFeeTotal = order.upgrades.reduce((cur, upgrade) => {
110
+ return (
111
+ cur +
112
+ upgradeFees.reduce((cur, fee) => cur + applyUpgradeFee(upgrade, fee), 0)
113
+ );
114
+ }, 0);
118
115
 
119
- // Order matters here. Flat type fees must be
120
- // applied before Percent type fees
121
- orderFees = orderFees.sort(({ type }) => {
122
- if (type === "Flat") return -1;
123
- return 1;
124
- });
116
+ const orderSubtotal =
117
+ ticketTotal + ticketFeeTotal + upgradeTotal + upgradeFeeTotal;
125
118
 
126
- const orderTotal = orderFees.reduce((cur, fee) => {
127
- return applyOrderFee(cur, fee);
128
- }, orderSubtotal);
119
+ // Order matters here. Flat type fees must be
120
+ // applied before Percent type fees
121
+ orderFees = orderFees.sort(({ type }) => {
122
+ if (type === "Flat") return -1;
123
+ return 1;
124
+ });
129
125
 
130
- return Math.round(orderTotal);
131
- }
126
+ const orderTotal = orderFees.reduce((cur, fee) => {
127
+ return applyOrderFee(cur, fee);
128
+ }, orderSubtotal);
129
+
130
+ return Math.round(orderTotal);
131
+ }
132
132
  },
133
133
  orderTotalWithRefund(order, fees) {
134
134
  return this.orderTotal(order, fees) - (order.refundedAmount || 0);
@@ -202,7 +202,9 @@ export default {
202
202
  const subtotal = this.orderSubtotal(order);
203
203
  const selloutFees = this.selloutFees(order, fees);
204
204
  const promoterFees = this.promoterFees(order, fees);
205
- return total - subtotal - selloutFees - promoterFees;
205
+ let stripeFee = total - subtotal - selloutFees - promoterFees;
206
+ let stripeFeeT = stripeFee < 0 ? 0 : stripeFee;
207
+ return stripeFeeT;
206
208
  },
207
209
  promoterFees(order, fees) {
208
210
  if (!order.tickets) order.tickets = [];
@@ -305,9 +307,9 @@ export default {
305
307
  /*****************************************************************************************
306
308
  Custom Field
307
309
  *****************************************************************************************/
308
- customField(order: IOrder | ICreateOrderParams, eventCustomFieldId: string): IOrderCustomField | null {
309
- return order?.customFields?.find(
310
- (customField) => customField.customFieldId === eventCustomFieldId
311
- ) ?? null;
312
- }
310
+ customField(order: IOrder | ICreateOrderParams, eventCustomFieldId: string): IOrderCustomField | null {
311
+ return order?.customFields?.find(
312
+ (customField) => customField.customFieldId === eventCustomFieldId
313
+ ) ?? null;
314
+ }
313
315
  };