@sellout/models 0.0.97 → 0.0.99

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 (95) hide show
  1. package/.dist/enums/PaymentMethodEnum.d.ts +5 -0
  2. package/.dist/enums/PaymentMethodEnum.js +10 -0
  3. package/.dist/enums/PaymentMethodEnum.js.map +1 -0
  4. package/.dist/graphql/mutations/{setUserOrgContextId.js → createStripeSetupIntent.js} +3 -5
  5. package/.dist/graphql/mutations/createStripeSetupIntent.js.map +1 -0
  6. package/.dist/graphql/mutations/{resetPasswordInApp.mutation.js → generateOrderReport.mutation.js} +3 -3
  7. package/.dist/graphql/mutations/generateOrderReport.mutation.js.map +1 -0
  8. package/.dist/graphql/mutations/listStripeTerminalReaders.mutation.d.ts +2 -0
  9. package/.dist/graphql/mutations/listStripeTerminalReaders.mutation.js +21 -0
  10. package/.dist/graphql/mutations/listStripeTerminalReaders.mutation.js.map +1 -0
  11. package/.dist/graphql/mutations/listStripeTerminalReaders.query.d.ts +2 -0
  12. package/.dist/graphql/mutations/listStripeTerminalReaders.query.js +21 -0
  13. package/.dist/graphql/mutations/listStripeTerminalReaders.query.js.map +1 -0
  14. package/.dist/graphql/mutations/registerStripeTermainlReader.mutation.d.ts +2 -0
  15. package/.dist/graphql/mutations/registerStripeTermainlReader.mutation.js +13 -0
  16. package/.dist/graphql/mutations/registerStripeTermainlReader.mutation.js.map +1 -0
  17. package/.dist/graphql/mutations/registerStripeTerminalReader.d.ts +2 -0
  18. package/.dist/graphql/mutations/registerStripeTerminalReader.js +13 -0
  19. package/.dist/graphql/mutations/registerStripeTerminalReader.js.map +1 -0
  20. package/.dist/graphql/mutations/verifyPhoneAuthentication.mutation.js +15 -0
  21. package/.dist/graphql/mutations/verifyPhoneAuthentication.mutation.js.map +1 -0
  22. package/.dist/graphql/mutations/verifyUserPhoneAuthentication.js +15 -0
  23. package/.dist/graphql/mutations/verifyUserPhoneAuthentication.js.map +1 -0
  24. package/.dist/graphql/queries/customerProfile.query.js +18 -0
  25. package/.dist/graphql/queries/customerProfile.query.js.map +1 -1
  26. package/.dist/graphql/queries/events.query.js +18 -0
  27. package/.dist/graphql/queries/events.query.js.map +1 -1
  28. package/.dist/graphql/queries/metrics.query.js +29 -0
  29. package/.dist/graphql/queries/metrics.query.js.map +1 -0
  30. package/.dist/graphql/queries/metricsData.query.d.ts +2 -0
  31. package/.dist/graphql/queries/metricsData.query.js +29 -0
  32. package/.dist/graphql/queries/metricsData.query.js.map +1 -0
  33. package/.dist/interfaces/IAnalytics.d.ts +22 -1
  34. package/.dist/interfaces/IAnalytics.js +52 -1
  35. package/.dist/interfaces/IAnalytics.js.map +1 -1
  36. package/.dist/interfaces/IEvent.d.ts +4 -2
  37. package/.dist/interfaces/IEvent.js +1 -1
  38. package/.dist/interfaces/IEvent.js.map +1 -1
  39. package/.dist/interfaces/IEventQuery.d.ts +22 -0
  40. package/.dist/interfaces/IEventQuery.js +15 -0
  41. package/.dist/interfaces/IEventQuery.js.map +1 -0
  42. package/.dist/interfaces/IMetricData.d.ts +57 -0
  43. package/.dist/interfaces/IMetricData.js +70 -0
  44. package/.dist/interfaces/IMetricData.js.map +1 -0
  45. package/.dist/interfaces/IOrderQuery.d.ts +14 -0
  46. package/.dist/interfaces/{ISecondaryEmail.js → IOrderQuery.js} +1 -1
  47. package/.dist/interfaces/IOrderQuery.js.map +1 -0
  48. package/.dist/interfaces/IStripe.d.ts +9 -0
  49. package/.dist/interfaces/IStripe.js +3 -0
  50. package/.dist/interfaces/IStripe.js.map +1 -0
  51. package/.dist/interfaces/IStripeSource.d.ts +1 -1
  52. package/.dist/interfaces/IUserProfile.d.ts +2 -0
  53. package/.dist/sellout-proto.js +96 -8
  54. package/.dist/utils/AnalyticsUtil.d.ts +2 -0
  55. package/.dist/utils/AnalyticsUtil.js +46 -7
  56. package/.dist/utils/AnalyticsUtil.js.map +1 -1
  57. package/.dist/utils/MetricsUtil.d.ts +7 -0
  58. package/.dist/utils/MetricsUtil.js +29 -0
  59. package/.dist/utils/MetricsUtil.js.map +1 -0
  60. package/.dist/utils/fee-util-broken-but-why.d.ts +8 -0
  61. package/.dist/utils/fee-util-broken-but-why.js +38 -0
  62. package/.dist/utils/fee-util-broken-but-why.js.map +1 -0
  63. package/package.json +4 -4
  64. package/src/graphql/mutations/generateOrderReport.mutation.ts +9 -0
  65. package/src/graphql/queries/customerProfile.query.ts +18 -0
  66. package/src/graphql/queries/events.query.ts +18 -0
  67. package/src/interfaces/IAnalytics.ts +55 -0
  68. package/src/interfaces/IEvent.ts +3 -1
  69. package/src/interfaces/IEventQuery.ts +24 -0
  70. package/src/interfaces/IOrderQuery.ts +14 -0
  71. package/src/interfaces/IUserProfile.ts +2 -0
  72. package/src/proto/event.proto +4 -1
  73. package/src/proto/order.proto +5 -4
  74. package/src/utils/AnalyticsUtil.ts +86 -12
  75. package/.dist/enums/DefaultPerformerImageUrls.d.ts +0 -5
  76. package/.dist/enums/DefaultPerformerImageUrls.js +0 -11
  77. package/.dist/enums/DefaultPerformerImageUrls.js.map +0 -1
  78. package/.dist/graphql/mutations/resetPasswordInApp.mutation.js.map +0 -1
  79. package/.dist/graphql/mutations/setUserOrgContextId.js.map +0 -1
  80. package/.dist/graphql/queries/customerProfile.js +0 -42
  81. package/.dist/graphql/queries/customerProfile.js.map +0 -1
  82. package/.dist/graphql/queries/organization.query.js +0 -49
  83. package/.dist/graphql/queries/organization.query.js.map +0 -1
  84. package/.dist/graphql/queries/organizations.js +0 -49
  85. package/.dist/graphql/queries/organizations.js.map +0 -1
  86. package/.dist/interfaces/ISecondaryEmail.d.ts +0 -4
  87. package/.dist/interfaces/ISecondaryEmail.js.map +0 -1
  88. package/.dist/schemas/SecondaryEmail.d.ts +0 -12
  89. package/.dist/schemas/SecondaryEmail.js +0 -14
  90. package/.dist/schemas/SecondaryEmail.js.map +0 -1
  91. /package/.dist/graphql/mutations/{resetPasswordInApp.mutation.d.ts → createStripeSetupIntent.d.ts} +0 -0
  92. /package/.dist/graphql/mutations/{setUserOrgContextId.d.ts → generateOrderReport.mutation.d.ts} +0 -0
  93. /package/.dist/graphql/{queries/customerProfile.d.ts → mutations/verifyPhoneAuthentication.mutation.d.ts} +0 -0
  94. /package/.dist/graphql/{queries/organization.query.d.ts → mutations/verifyUserPhoneAuthentication.d.ts} +0 -0
  95. /package/.dist/graphql/queries/{organizations.d.ts → metrics.query.d.ts} +0 -0
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const IFee__1 = require("../interfaces/IFee\";");
4
+ exports.default = {
5
+ processingFees(fees) {
6
+ return fees.filter((fee) => {
7
+ if (fee.appliedBy === IFee__1.FeeAppliedByEnum.Sellout || fee.appliedBy === IFee__1.FeeAppliedByEnum.Stripe) {
8
+ return true;
9
+ }
10
+ return false;
11
+ });
12
+ },
13
+ selloutFees(fees) {
14
+ return fees.filter((fee) => {
15
+ if (fee.appliedBy === IFee__1.FeeAppliedByEnum.Sellout) {
16
+ return true;
17
+ }
18
+ return false;
19
+ });
20
+ },
21
+ stripeFees(fees) {
22
+ return fees.filter((fee) => {
23
+ if (fee.appliedBy === IFee__1.FeeAppliedByEnum.Stripe) {
24
+ return false;
25
+ }
26
+ return true;
27
+ });
28
+ },
29
+ promoterFees(fees) {
30
+ return fees.filter((fee) => {
31
+ if (fee.appliedBy === IFee__1.FeeAppliedByEnum.Sellout || fee.appliedBy === IFee__1.FeeAppliedByEnum.Stripe) {
32
+ return false;
33
+ }
34
+ return true;
35
+ });
36
+ },
37
+ };
38
+ //# sourceMappingURL=fee-util-broken-but-why.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee-util-broken-but-why.js","sourceRoot":"","sources":["../../src/utils/fee-util-broken-but-why.ts"],"names":[],"mappings":";;AAAA,iDAA4D;AAE5D,kBAAe;IACb,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAS,EAAE,EAAE;YAC/B,IAAI,GAAG,CAAC,SAAS,KAAK,wBAAgB,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,KAAK,wBAAgB,CAAC,MAAM,EAAE;gBAC3F,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAS,EAAE,EAAE;YAC/B,IAAI,GAAG,CAAC,SAAS,KAAK,wBAAgB,CAAC,OAAO,EAAE;gBAC9C,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAS,EAAE,EAAE;YAC/B,IAAI,GAAG,CAAC,SAAS,KAAK,wBAAgB,CAAC,MAAM,EAAE;gBAC7C,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAS,EAAE,EAAE;YAC/B,IAAI,GAAG,CAAC,SAAS,KAAK,wBAAgB,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,KAAK,wBAAgB,CAAC,MAAM,EAAE;gBAC3F,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellout/models",
3
- "version": "0.0.97",
3
+ "version": "0.0.99",
4
4
  "description": "Sellout.io models",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -17,8 +17,8 @@
17
17
  "license": "MIT",
18
18
  "dependencies": {
19
19
  "@hapi/joi": "^16.1.7",
20
- "@sellout/service": "^0.0.97",
21
- "@sellout/utils": "^0.0.97",
20
+ "@sellout/service": "^0.0.99",
21
+ "@sellout/utils": "^0.0.99",
22
22
  "@types/hapi__joi": "^16.0.1",
23
23
  "@types/shortid": "0.0.29",
24
24
  "apollo-link-debounce": "^2.1.0",
@@ -32,5 +32,5 @@
32
32
  "protobufjs": "~6.10.1",
33
33
  "typescript": "^3.8.3"
34
34
  },
35
- "gitHead": "cf5fe5ce7e143adbf0e8d44b4e0f3071100dc913"
35
+ "gitHead": "7162c9d082ea3ee7169a885d4158fb45040cf93e"
36
36
  }
@@ -0,0 +1,9 @@
1
+ import gql from 'graphql-tag';
2
+
3
+ const mutation = gql`
4
+ mutation generateOrderReport($query: OrderQueryInput) {
5
+ generateOrderReport(query: $query)
6
+ }
7
+ `;
8
+
9
+ export default mutation;
@@ -26,6 +26,24 @@ const query = gql`
26
26
  type
27
27
  }
28
28
  }
29
+ analytics {
30
+ label
31
+ type
32
+ interval
33
+ intervalOptions
34
+ coordinates {
35
+ x
36
+ y
37
+ }
38
+ segments {
39
+ label
40
+ type
41
+ coordinates {
42
+ x
43
+ y
44
+ }
45
+ }
46
+ }
29
47
  }
30
48
  }
31
49
  `;
@@ -30,6 +30,24 @@ const query = gql`
30
30
  city
31
31
  }
32
32
  }
33
+ analytics {
34
+ label
35
+ type
36
+ interval
37
+ intervalOptions
38
+ coordinates {
39
+ x
40
+ y
41
+ }
42
+ segments {
43
+ label
44
+ type
45
+ coordinates {
46
+ x
47
+ y
48
+ }
49
+ }
50
+ }
33
51
  published
34
52
  ...EventSchedule
35
53
  ...Location
@@ -32,6 +32,8 @@ export enum AnalyticsTypeEnum {
32
32
  AvgOrderValue = "Avg. Order Value",
33
33
  OnlineSessions = "Online Sessions",
34
34
  OnlineConversationRate = "Online Converstation Rate",
35
+ EventAnalytics = 'Event Analytics',
36
+ UserAnalytics = 'User Analytics'
35
37
  }
36
38
 
37
39
  export enum AnalyticsValueTypeEnum {
@@ -44,6 +46,7 @@ export interface IAnalyticsQueryParams {
44
46
  eventId?: string;
45
47
  venueId?: string;
46
48
  artistId?: string;
49
+ userId?: string;
47
50
  startDate?: number;
48
51
  endDate?: number;
49
52
  interval?: AnalyticsIntervalEnum;
@@ -55,6 +58,28 @@ export interface ICoordinate {
55
58
  y: number;
56
59
  }
57
60
 
61
+ export enum EventAnalyticsEnum {
62
+ SoldOutPercentage = 'Sold Out',
63
+ TotalSales = 'Total Sales',
64
+ }
65
+
66
+ export enum EventAnalyticsSegmentsIndexEnum {
67
+ SoldOut = 0,
68
+ TotalSales = 1,
69
+ }
70
+
71
+ export enum UserAnalyticsEnum {
72
+ EventsAttendedCount = 'EventAttendedCount',
73
+ TicketsPurchasedCount = 'TicketsPurchasedCount',
74
+ LifeTimeValue = 'LifeTimeValue',
75
+ }
76
+
77
+ export enum UserAnalyticsSegmentsIndexEnum {
78
+ EventsAttendedCount = 0,
79
+ TicketsPurchasedCount = 1,
80
+ LifeTimeValue = 2,
81
+ }
82
+
58
83
  export default interface IAnalytics {
59
84
  label: string;
60
85
  interval?: AnalyticsIntervalEnum;
@@ -65,6 +90,36 @@ export default interface IAnalytics {
65
90
  totalValue?: number;
66
91
  }
67
92
 
93
+
94
+ // const EventAnalytics: IAnalytics = {
95
+ // label: AnalyticsTypeEnum.EventAnalytics,
96
+ // type: AnalyticsValueTypeEnum.General,
97
+ // interval: AnalyticsIntervalEnum.Hour,
98
+ // segments: [
99
+ // {
100
+ // label: EventAnalyticsEnum.SoldOutPercentage,
101
+ // type: AnalyticsValueTypeEnum.Percent,
102
+ // coordinates: [
103
+ // {
104
+ // x: 1,
105
+ // y: 68,
106
+ // },
107
+ // ]
108
+ // },
109
+ // {
110
+ // label: EventAnalyticsEnum.TotalSales,
111
+ // type: AnalyticsValueTypeEnum.Currency,
112
+ // coordinates: [
113
+ // {
114
+ // x: 1,
115
+ // y: 2120100,
116
+ // },
117
+ // ]
118
+ // }
119
+ // ]
120
+
121
+ // }
122
+
68
123
  // const TicketSalesCard: IAnalytics = {
69
124
  // label: AnalyticsTypeEnum.TicketSales,
70
125
  // type: AnalyticsValueTypeEnum.Currency,
@@ -13,6 +13,7 @@ import IPerformance from './IPerformance';
13
13
  import IEventPromotion from './IEventPromotion';
14
14
  import IEventCustomField from './IEventCustomField';
15
15
  import IAddress from "./IAddress";
16
+ import IAnalytics from "./IAnalytics";
16
17
 
17
18
  export enum EventTypeEnum {
18
19
  GeneralEvent = 'General Event', // TODO // BACKFILL
@@ -38,9 +39,9 @@ export enum EventAgeEnum {
38
39
  }
39
40
 
40
41
  export enum SendQRCodeEnum {
41
- DayOfShow = 'Day of show',
42
42
  UponOrder = 'Upon order',
43
43
  TwoWeeksBefore = 'Two weeks before show',
44
+ DayOfShow = 'Day of show',
44
45
  }
45
46
 
46
47
  export enum EventProcessAsEnum {
@@ -87,4 +88,5 @@ export interface IEventGraphQL extends IEvent {
87
88
  webFlowEntity?: IWebFlowEntity
88
89
  seatingPublicKey?: string;
89
90
  hasOrders: boolean;
91
+ analytics: IAnalytics;
90
92
  }
@@ -0,0 +1,24 @@
1
+ export enum EventQuerySortByEnum {
2
+ CreatedAt = 'createdAt',
3
+ StartsAt = 'schedule.startsAt',
4
+ };
5
+
6
+ export enum EventQueryOrderByEnum {
7
+ Ascending = -1,
8
+ Descending = 1,
9
+ }
10
+
11
+ export default interface IEventQuery {
12
+ orgId?: string;
13
+ name?: string;
14
+ eventIds?: string[];
15
+ venueIds?: string[];
16
+ artistIds?: string[];
17
+ userIds?: string[];
18
+ startDate?: number;
19
+ endDate?: number;
20
+ sortBy?: EventQuerySortByEnum;
21
+ orderBy?: EventQueryOrderByEnum;
22
+ published?: boolean;
23
+ any?: boolean;
24
+ }
@@ -0,0 +1,14 @@
1
+ export default interface IOrderQuery {
2
+ orgId?: string;
3
+ orderIds?: string[];
4
+ eventIds?: string[];
5
+ venueIds?: string[];
6
+ artistIds?: string[];
7
+ userIds?: string[];
8
+ userQuery?: string;
9
+ states?: string[];
10
+ types?: string[];
11
+ startDate?: number;
12
+ endDate?: number;
13
+ any?: boolean;
14
+ }
@@ -1,4 +1,5 @@
1
1
  import IAddress from "./IAddress";
2
+ import IAnalytics from "./IAnalytics";
2
3
  import IStripeCustomer from './IStripeCustomer';
3
4
  import IUser from "./IUser";
4
5
 
@@ -23,4 +24,5 @@ export default interface IUserProfile {
23
24
  export interface IUserProfileGraphQL extends IUserProfile {
24
25
  user: IUser;
25
26
  stripeCustomer: IStripeCustomer;
27
+ analytics: IAnalytics;
26
28
  }
@@ -197,7 +197,10 @@ message EventQuery {
197
197
  repeated string userIds = 4;
198
198
  int32 startDate = 5;
199
199
  int32 endDate = 6;
200
- bool any = 7;
200
+ string sortBy = 7;
201
+ int32 orderBy = 8;
202
+ bool published = 9;
203
+ bool any = 10;
201
204
  }
202
205
 
203
206
  message QueryEventsRequest {
@@ -341,10 +341,11 @@ message OrderAnalyticsQuery {
341
341
  string eventId = 0;
342
342
  string venueId = 1;
343
343
  string artistId = 2;
344
- int32 startDate = 3;
345
- int32 endDate = 4;
346
- string interval = 5;
347
- repeated string types = 6;
344
+ string userId = 3;
345
+ int32 startDate = 4;
346
+ int32 endDate = 5;
347
+ string interval = 6;
348
+ repeated string types = 7;
348
349
  }
349
350
 
350
351
  message QueryOrderAnalyticsRequest {
@@ -3,7 +3,9 @@ import IAnalytics, {
3
3
  AnalyticsIntervalEnum,
4
4
  AnalyticsTypeEnum,
5
5
  AnalyticsValueTypeEnum,
6
+ EventAnalyticsEnum,
6
7
  ICoordinate,
8
+ UserAnalyticsEnum,
7
9
  } from "../interfaces/IAnalytics";
8
10
  import IOrder from "../interfaces/IOrder";
9
11
  import IOrderTicket from "../interfaces/IOrderTicket";
@@ -175,8 +177,6 @@ type IntervalInfo = {
175
177
  intervalNum: number;
176
178
  };
177
179
 
178
-
179
-
180
180
  const getIntervalInfo = (
181
181
  orders: IOrder[],
182
182
  startDate?: number,
@@ -191,12 +191,6 @@ const getIntervalInfo = (
191
191
  }
192
192
 
193
193
  const duration = endDate - startDate; // duration in seconds
194
-
195
- // console.log('start', startDate);
196
- // console.log('end', endDate);
197
- // console.log('dur', duration);
198
- // console.log('interval', interval)
199
-
200
194
  const intervalFromDuration = getIntervalFromDuration(duration);
201
195
  const intervalOptions = intervalsMap[intervalFromDuration];
202
196
  if(!interval) {
@@ -213,10 +207,6 @@ const getIntervalInfo = (
213
207
  // Number of intervals.
214
208
  const intervalNum = Math.ceil(duration / intervalLength) + 1;
215
209
 
216
- // const altIntervalIndex = orderedIntervals.indexOf(interval) + 1;
217
- // const altInterval = orderedIntervals[altIntervalIndex];
218
- // if (altInterval) intervalOptions.push(altInterval);
219
-
220
210
  return {
221
211
  startDate,
222
212
  endDate,
@@ -271,6 +261,12 @@ export default {
271
261
  case AnalyticsTypeEnum.TotalOrders:
272
262
  return this.totalOrders(type, orders, intervalInfo);
273
263
 
264
+ case AnalyticsTypeEnum.EventAnalytics:
265
+ return this.eventAnalytics(type, orders, intervalInfo, showSegments);
266
+
267
+ case AnalyticsTypeEnum.UserAnalytics:
268
+ return this.userAnalytics(type, orders, intervalInfo, showSegments);
269
+
274
270
  default:
275
271
  return {
276
272
  label: type,
@@ -698,6 +694,84 @@ export default {
698
694
  coordinatesSumFn
699
695
  );
700
696
  },
697
+ eventAnalytics(
698
+ type: AnalyticsTypeEnum,
699
+ orders: IOrder[],
700
+ intervalInfo: IntervalInfo,
701
+ showSegments: boolean,
702
+ ): IAnalytics {
703
+ const coordinatesSumFn = (orders: IOrder[]) =>
704
+ orders.filter(order => Boolean(order.promotionCode))
705
+ .length;
706
+
707
+ let segmentTypes;
708
+ let segmentCoordinatesHOSumFn;
709
+ if (showSegments) {
710
+ segmentTypes = [EventAnalyticsEnum.SoldOutPercentage, EventAnalyticsEnum.TotalSales];
711
+
712
+ segmentCoordinatesHOSumFn = (segmentType: string) => (orders: IOrder[]) => {
713
+ switch(segmentType) {
714
+ case EventAnalyticsEnum.SoldOutPercentage:
715
+ return 0;
716
+ case EventAnalyticsEnum.TotalSales:
717
+ return orders.reduce((cur: number, next: IOrder) => cur + next?.payments?.[0].transferAmount ?? 0, 0);
718
+ }
719
+ }
720
+ }
721
+
722
+ return makeAnalytics(
723
+ type,
724
+ orders,
725
+ intervalInfo,
726
+ AnalyticsValueTypeEnum.Quantity,
727
+ coordinatesSumFn,
728
+ segmentTypes,
729
+ segmentCoordinatesHOSumFn
730
+ );
731
+ },
732
+ userAnalytics(
733
+ type: AnalyticsTypeEnum,
734
+ orders: IOrder[],
735
+ intervalInfo: IntervalInfo,
736
+ showSegments: boolean,
737
+ ): IAnalytics {
738
+
739
+ const coordinatesSumFn = (orders: IOrder[]) =>
740
+ orders.filter(order => Boolean(order.promotionCode))
741
+ .length;
742
+
743
+ let segmentTypes;
744
+ let segmentCoordinatesHOSumFn;
745
+ if (showSegments) {
746
+ segmentTypes = [
747
+ UserAnalyticsEnum.EventsAttendedCount,
748
+ UserAnalyticsEnum.TicketsPurchasedCount,
749
+ UserAnalyticsEnum.LifeTimeValue
750
+ ];
751
+
752
+ segmentCoordinatesHOSumFn = (segmentType: string) => (orders: IOrder[]) => {
753
+ switch (segmentType) {
754
+ case UserAnalyticsEnum.EventsAttendedCount:
755
+ return [...new Set(orders.map(order => order.eventId))].length;
756
+ case UserAnalyticsEnum.TicketsPurchasedCount:
757
+ return orders.reduce((cur: number, next: IOrder) => cur + next.tickets.length ?? 0, 0);
758
+ case UserAnalyticsEnum.LifeTimeValue:
759
+ return orders.reduce((cur: number, next: IOrder) => cur + next.payments?.[0].transferAmount ?? 0, 0);
760
+
761
+ }
762
+ }
763
+ }
764
+
765
+ return makeAnalytics(
766
+ type,
767
+ orders,
768
+ intervalInfo,
769
+ AnalyticsValueTypeEnum.Quantity,
770
+ coordinatesSumFn,
771
+ segmentTypes,
772
+ segmentCoordinatesHOSumFn
773
+ );
774
+ },
701
775
 
702
776
  // Returns start and end date
703
777
  durationToUnix(duration: AnalyticsDurationEnum): IDuration {
@@ -1,5 +0,0 @@
1
- export declare enum DefaultArtistImageUrls {
2
- Individual = "https://storage.googleapis.com/sellout-assets/default-images/performer/individual.jpg",
3
- MusicalArtist = "https://storage.googleapis.com/sellout-assets/default-images/performer/musical-artist.jpg",
4
- Film = "https://storage.googleapis.com/sellout-assets/default-images/performer/film.jpg"
5
- }
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultArtistImageUrls = void 0;
4
- var DefaultArtistImageUrls;
5
- (function (DefaultArtistImageUrls) {
6
- DefaultArtistImageUrls["Individual"] = "https://storage.googleapis.com/sellout-assets/default-images/performer/individual.jpg";
7
- DefaultArtistImageUrls["MusicalArtist"] = "https://storage.googleapis.com/sellout-assets/default-images/performer/musical-artist.jpg";
8
- DefaultArtistImageUrls["Film"] = "https://storage.googleapis.com/sellout-assets/default-images/performer/film.jpg";
9
- })(DefaultArtistImageUrls = exports.DefaultArtistImageUrls || (exports.DefaultArtistImageUrls = {}));
10
- ;
11
- //# sourceMappingURL=DefaultPerformerImageUrls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultPerformerImageUrls.js","sourceRoot":"","sources":["../../src/enums/DefaultPerformerImageUrls.ts"],"names":[],"mappings":";;;AAAA,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,8HAAoG,CAAA;IACpG,qIAA2G,CAAA;IAC3G,kHAAwF,CAAA;AAC1F,CAAC,EAJW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAIjC;AAAA,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resetPasswordInApp.mutation.js","sourceRoot":"","sources":["../../../src/graphql/mutations/resetPasswordInApp.mutation.ts"],"names":[],"mappings":";;;;;AAAA,8DAA8B;AAE9B,MAAM,QAAQ,GAAG,qBAAG,CAAA;;;;CAInB,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"setUserOrgContextId.js","sourceRoot":"","sources":["../../../src/graphql/mutations/setUserOrgContextId.ts"],"names":[],"mappings":";;;;;AAAA,8DAA8B;AAE9B,MAAM,QAAQ,GAAG,qBAAG,CAAA;;;;;;CAMnB,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const graphql_tag_1 = __importDefault(require("graphql-tag"));
7
- const query = graphql_tag_1.default `
8
- query userProfiles($query: UserProfileQueryInput) {
9
- userProfiles(query: $query) {
10
- _id
11
- imageUrl
12
- user {
13
- _id
14
- email
15
- firstName
16
- lastName
17
- phoneNumber
18
- phoneNumberVerifiedAt
19
- }
20
- metrics {
21
- orgId
22
- yearToDateValue
23
- lifeTimeValue
24
- createdAt
25
- lifeTimeTicketsPurchased
26
- lifeTimeUpgradesPurchased
27
- }
28
- stripeCustomerId
29
- address {
30
- address1
31
- address2
32
- city
33
- state
34
- zip
35
- country
36
- phone
37
- }
38
- }
39
- }
40
- `;
41
- exports.default = query;
42
- //# sourceMappingURL=customerProfile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"customerProfile.js","sourceRoot":"","sources":["../../../src/graphql/queries/customerProfile.ts"],"names":[],"mappings":";;;;;AAAA,8DAA8B;AAE9B,MAAM,KAAK,GAAG,qBAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiChB,CAAC;AAEF,kBAAe,KAAK,CAAC"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const graphql_tag_1 = __importDefault(require("graphql-tag"));
7
- const query = graphql_tag_1.default `
8
- query organizations {
9
- organizations {
10
- _id
11
- orgName
12
- orgUrls
13
- orgLogoUrl
14
- createdAt
15
- address {
16
- address1
17
- address2
18
- city
19
- state
20
- zip
21
- country
22
- }
23
- user {
24
- email
25
- }
26
- seating {
27
- publicKey
28
- secretKey
29
- designerKey
30
- }
31
- webFlow {
32
- sites {
33
- name
34
- webFlowId
35
- enabled
36
- createdAt
37
- updatedAt
38
- previewUrl
39
- domains {
40
- lastPublishedAt
41
- name
42
- }
43
- }
44
- }
45
- }
46
- }
47
- `;
48
- exports.default = query;
49
- //# sourceMappingURL=organization.query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"organization.query.js","sourceRoot":"","sources":["../../../src/graphql/queries/organization.query.ts"],"names":[],"mappings":";;;;;AAAA,8DAA8B;AAE9B,MAAM,KAAK,GAAG,qBAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwChB,CAAC;AAEF,kBAAe,KAAK,CAAC"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const graphql_tag_1 = __importDefault(require("graphql-tag"));
7
- const query = graphql_tag_1.default `
8
- query organizations {
9
- organizations {
10
- _id
11
- orgName
12
- orgUrls
13
- orgLogoUrl
14
- createdAt
15
- address {
16
- address1
17
- address2
18
- city
19
- state
20
- zip
21
- country
22
- }
23
- user {
24
- email
25
- }
26
- seating {
27
- publicKey
28
- secretKey
29
- designerKey
30
- }
31
- webFlow {
32
- sites {
33
- name
34
- webFlowId
35
- enabled
36
- createdAt
37
- updatedAt
38
- previewUrl
39
- domains {
40
- lastPublishedAt
41
- name
42
- }
43
- }
44
- }
45
- }
46
- }
47
- `;
48
- exports.default = query;
49
- //# sourceMappingURL=organizations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../../src/graphql/queries/organizations.ts"],"names":[],"mappings":";;;;;AAAA,8DAA8B;AAE9B,MAAM,KAAK,GAAG,qBAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwChB,CAAC;AAEF,kBAAe,KAAK,CAAC"}
@@ -1,4 +0,0 @@
1
- export default interface ISecondaryEmail {
2
- email: string;
3
- verifiedAt?: number;
4
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ISecondaryEmail.js","sourceRoot":"","sources":["../../src/interfaces/ISecondaryEmail.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- declare const _default: {
2
- email: {
3
- type: StringConstructor;
4
- required: boolean;
5
- };
6
- verifiedAt: {
7
- type: NumberConstructor;
8
- required: boolean;
9
- default: number;
10
- };
11
- };
12
- export default _default;