@sellout/models 0.0.57 → 0.0.59

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 (343) hide show
  1. package/.dist/enums/OrderDeliveryMethodEnum.d.ts +5 -0
  2. package/.dist/enums/OrderDeliveryMethodEnum.js +11 -0
  3. package/.dist/enums/OrderDeliveryMethodEnum.js.map +1 -0
  4. package/.dist/enums/PaymentMethodTypeEnum.d.ts +5 -0
  5. package/.dist/enums/PaymentMethodTypeEnum.js +10 -0
  6. package/.dist/enums/PaymentMethodTypeEnum.js.map +1 -0
  7. package/.dist/graphql/fragments/event.fragment.js +3 -0
  8. package/.dist/graphql/fragments/event.fragment.js.map +1 -1
  9. package/.dist/graphql/links/debounceLink.d.ts +3 -0
  10. package/.dist/graphql/links/debounceLink.js +9 -0
  11. package/.dist/graphql/links/debounceLink.js.map +1 -0
  12. package/.dist/graphql/mutations/acceptRole.mutation.d.ts +2 -0
  13. package/.dist/graphql/mutations/acceptRole.mutation.js +21 -0
  14. package/.dist/graphql/mutations/acceptRole.mutation.js.map +1 -0
  15. package/.dist/graphql/mutations/attachStripePaymentMethod.mutation.d.ts +2 -0
  16. package/.dist/graphql/mutations/attachStripePaymentMethod.mutation.js +13 -0
  17. package/.dist/graphql/mutations/attachStripePaymentMethod.mutation.js.map +1 -0
  18. package/.dist/graphql/mutations/createArtist.mutation.js +0 -8
  19. package/.dist/graphql/mutations/createArtist.mutation.js.map +1 -1
  20. package/.dist/graphql/mutations/createEvent.mutation.js +0 -2
  21. package/.dist/graphql/mutations/createEvent.mutation.js.map +1 -1
  22. package/.dist/graphql/mutations/createOrder.mutation.d.ts +2 -0
  23. package/.dist/graphql/mutations/createOrder.mutation.js +60 -0
  24. package/.dist/graphql/mutations/createOrder.mutation.js.map +1 -0
  25. package/.dist/graphql/mutations/createOrganizationFee.mutation.d.ts +2 -0
  26. package/.dist/graphql/mutations/createOrganizationFee.mutation.js +30 -0
  27. package/.dist/graphql/mutations/createOrganizationFee.mutation.js.map +1 -0
  28. package/.dist/graphql/mutations/createPlatformFee.mutation.d.ts +2 -0
  29. package/.dist/graphql/mutations/createPlatformFee.mutation.js +30 -0
  30. package/.dist/graphql/mutations/createPlatformFee.mutation.js.map +1 -0
  31. package/.dist/graphql/mutations/createRole.mutation.d.ts +2 -0
  32. package/.dist/graphql/mutations/createRole.mutation.js +19 -0
  33. package/.dist/graphql/mutations/createRole.mutation.js.map +1 -0
  34. package/.dist/graphql/mutations/createStripeSetupIntent.mutation.d.ts +2 -0
  35. package/.dist/graphql/mutations/createStripeSetupIntent.mutation.js +13 -0
  36. package/.dist/graphql/mutations/createStripeSetupIntent.mutation.js.map +1 -0
  37. package/.dist/graphql/mutations/createStripeTerminalConnectionToken.mutation.d.ts +2 -0
  38. package/.dist/graphql/mutations/createStripeTerminalConnectionToken.mutation.js +13 -0
  39. package/.dist/graphql/mutations/createStripeTerminalConnectionToken.mutation.js.map +1 -0
  40. package/.dist/graphql/mutations/createVenue.mutation.d.ts +2 -0
  41. package/.dist/graphql/mutations/createVenue.mutation.js +35 -0
  42. package/.dist/graphql/mutations/createVenue.mutation.js.map +1 -0
  43. package/.dist/graphql/mutations/createWebFlowSite.mutation.d.ts +2 -0
  44. package/.dist/graphql/mutations/createWebFlowSite.mutation.js +42 -0
  45. package/.dist/graphql/mutations/createWebFlowSite.mutation.js.map +1 -0
  46. package/.dist/graphql/mutations/deleteOrganizationFee.mutation.d.ts +2 -0
  47. package/.dist/graphql/mutations/deleteOrganizationFee.mutation.js +13 -0
  48. package/.dist/graphql/mutations/deleteOrganizationFee.mutation.js.map +1 -0
  49. package/.dist/graphql/mutations/deletePlatformFee.mutation.d.ts +2 -0
  50. package/.dist/graphql/mutations/deletePlatformFee.mutation.js +13 -0
  51. package/.dist/graphql/mutations/deletePlatformFee.mutation.js.map +1 -0
  52. package/.dist/graphql/mutations/deleteRole.mutation.d.ts +2 -0
  53. package/.dist/graphql/mutations/deleteRole.mutation.js +13 -0
  54. package/.dist/graphql/mutations/deleteRole.mutation.js.map +1 -0
  55. package/.dist/graphql/mutations/deleteStripeTerminalReader.mutation.d.ts +2 -0
  56. package/.dist/graphql/mutations/deleteStripeTerminalReader.mutation.js +13 -0
  57. package/.dist/graphql/mutations/deleteStripeTerminalReader.mutation.js.map +1 -0
  58. package/.dist/graphql/mutations/deleteUnverifiedUser.mutation.d.ts +2 -0
  59. package/.dist/graphql/mutations/deleteUnverifiedUser.mutation.js +14 -0
  60. package/.dist/graphql/mutations/deleteUnverifiedUser.mutation.js.map +1 -0
  61. package/.dist/graphql/mutations/forgotPassword.mutation.d.ts +2 -0
  62. package/.dist/graphql/mutations/forgotPassword.mutation.js +13 -0
  63. package/.dist/graphql/mutations/forgotPassword.mutation.js.map +1 -0
  64. package/.dist/graphql/mutations/login.mutation.d.ts +2 -0
  65. package/.dist/graphql/mutations/login.mutation.js +23 -0
  66. package/.dist/graphql/mutations/login.mutation.js.map +1 -0
  67. package/.dist/graphql/mutations/register.mutation.d.ts +2 -0
  68. package/.dist/graphql/mutations/register.mutation.js +23 -0
  69. package/.dist/graphql/mutations/register.mutation.js.map +1 -0
  70. package/.dist/graphql/mutations/registerStripeTerminalReader.mutation.d.ts +2 -0
  71. package/.dist/graphql/mutations/registerStripeTerminalReader.mutation.js +21 -0
  72. package/.dist/graphql/mutations/registerStripeTerminalReader.mutation.js.map +1 -0
  73. package/.dist/graphql/mutations/remapWebFlowSite.mutation.d.ts +2 -0
  74. package/.dist/graphql/mutations/remapWebFlowSite.mutation.js +40 -0
  75. package/.dist/graphql/mutations/remapWebFlowSite.mutation.js.map +1 -0
  76. package/.dist/graphql/mutations/sendUserPhoneAuthentication.mutation.d.ts +2 -0
  77. package/.dist/graphql/mutations/sendUserPhoneAuthentication.mutation.js +13 -0
  78. package/.dist/graphql/mutations/sendUserPhoneAuthentication.mutation.js.map +1 -0
  79. package/.dist/graphql/mutations/setUserOrgContextId.d.ts +2 -0
  80. package/.dist/graphql/mutations/setUserOrgContextId.js +15 -0
  81. package/.dist/graphql/mutations/setUserOrgContextId.js.map +1 -0
  82. package/.dist/graphql/mutations/setUserOrgContextId.mutation.d.ts +2 -0
  83. package/.dist/graphql/mutations/setUserOrgContextId.mutation.js +15 -0
  84. package/.dist/graphql/mutations/setUserOrgContextId.mutation.js.map +1 -0
  85. package/.dist/graphql/mutations/setUserPassword.mutation.d.ts +2 -0
  86. package/.dist/graphql/mutations/setUserPassword.mutation.js +15 -0
  87. package/.dist/graphql/mutations/setUserPassword.mutation.js.map +1 -0
  88. package/.dist/graphql/mutations/updateArtist.mutation.js +0 -8
  89. package/.dist/graphql/mutations/updateArtist.mutation.js.map +1 -1
  90. package/.dist/graphql/mutations/updateEvent.mutation.js +0 -2
  91. package/.dist/graphql/mutations/updateEvent.mutation.js.map +1 -1
  92. package/.dist/graphql/mutations/updateOrganizationFee.mutation.d.ts +2 -0
  93. package/.dist/graphql/mutations/updateOrganizationFee.mutation.js +30 -0
  94. package/.dist/graphql/mutations/updateOrganizationFee.mutation.js.map +1 -0
  95. package/.dist/graphql/mutations/updatePlatformFee.mutation.d.ts +2 -0
  96. package/.dist/graphql/mutations/updatePlatformFee.mutation.js +30 -0
  97. package/.dist/graphql/mutations/updatePlatformFee.mutation.js.map +1 -0
  98. package/.dist/graphql/mutations/updateVenue.mutation.d.ts +2 -0
  99. package/.dist/graphql/mutations/updateVenue.mutation.js +35 -0
  100. package/.dist/graphql/mutations/updateVenue.mutation.js.map +1 -0
  101. package/.dist/graphql/mutations/verifyUserPhoneAuthentication.mutation.d.ts +2 -0
  102. package/.dist/graphql/mutations/verifyUserPhoneAuthentication.mutation.js +15 -0
  103. package/.dist/graphql/mutations/verifyUserPhoneAuthentication.mutation.js.map +1 -0
  104. package/.dist/graphql/queries/analytics.query.d.ts +2 -0
  105. package/.dist/graphql/queries/analytics.query.js +30 -0
  106. package/.dist/graphql/queries/analytics.query.js.map +1 -0
  107. package/.dist/graphql/queries/artist.query.js +0 -8
  108. package/.dist/graphql/queries/artist.query.js.map +1 -1
  109. package/.dist/graphql/queries/artists.query.js +0 -8
  110. package/.dist/graphql/queries/artists.query.js.map +1 -1
  111. package/.dist/graphql/queries/customerProfile.d.ts +2 -0
  112. package/.dist/graphql/queries/customerProfile.js +42 -0
  113. package/.dist/graphql/queries/customerProfile.js.map +1 -0
  114. package/.dist/graphql/queries/customerProfile.query.d.ts +2 -0
  115. package/.dist/graphql/queries/customerProfile.query.js +25 -0
  116. package/.dist/graphql/queries/customerProfile.query.js.map +1 -0
  117. package/.dist/graphql/queries/event.query.js +3 -2
  118. package/.dist/graphql/queries/event.query.js.map +1 -1
  119. package/.dist/graphql/queries/events.query.js +2 -7
  120. package/.dist/graphql/queries/events.query.js.map +1 -1
  121. package/.dist/graphql/queries/listStripeTerminalReaders.query.d.ts +2 -0
  122. package/.dist/graphql/queries/listStripeTerminalReaders.query.js +21 -0
  123. package/.dist/graphql/queries/listStripeTerminalReaders.query.js.map +1 -0
  124. package/.dist/graphql/queries/orders.query.js +14 -0
  125. package/.dist/graphql/queries/orders.query.js.map +1 -1
  126. package/.dist/graphql/queries/organization.query.d.ts +2 -0
  127. package/.dist/graphql/queries/organization.query.js +49 -0
  128. package/.dist/graphql/queries/organization.query.js.map +1 -0
  129. package/.dist/graphql/queries/organizationFees.query.d.ts +2 -0
  130. package/.dist/graphql/queries/organizationFees.query.js +30 -0
  131. package/.dist/graphql/queries/organizationFees.query.js.map +1 -0
  132. package/.dist/graphql/queries/organizations.d.ts +2 -0
  133. package/.dist/graphql/queries/organizations.js +49 -0
  134. package/.dist/graphql/queries/organizations.js.map +1 -0
  135. package/.dist/graphql/queries/organizations.query.d.ts +2 -0
  136. package/.dist/graphql/queries/organizations.query.js +49 -0
  137. package/.dist/graphql/queries/organizations.query.js.map +1 -0
  138. package/.dist/graphql/queries/platformFees.query.d.ts +2 -0
  139. package/.dist/graphql/queries/platformFees.query.js +30 -0
  140. package/.dist/graphql/queries/platformFees.query.js.map +1 -0
  141. package/.dist/graphql/queries/profile.query.js +4 -1
  142. package/.dist/graphql/queries/profile.query.js.map +1 -1
  143. package/.dist/graphql/queries/profiles.query.js +1 -8
  144. package/.dist/graphql/queries/profiles.query.js.map +1 -1
  145. package/.dist/graphql/queries/publicEvent.query.d.ts +2 -0
  146. package/.dist/graphql/queries/publicEvent.query.js +57 -0
  147. package/.dist/graphql/queries/publicEvent.query.js.map +1 -0
  148. package/.dist/graphql/queries/role.query.d.ts +2 -0
  149. package/.dist/graphql/queries/role.query.js +32 -0
  150. package/.dist/graphql/queries/role.query.js.map +1 -0
  151. package/.dist/graphql/queries/seating.query.d.ts +2 -0
  152. package/.dist/graphql/queries/seating.query.js +20 -0
  153. package/.dist/graphql/queries/seating.query.js.map +1 -0
  154. package/.dist/graphql/queries/userExists.query.d.ts +2 -0
  155. package/.dist/graphql/queries/userExists.query.js +18 -0
  156. package/.dist/graphql/queries/userExists.query.js.map +1 -0
  157. package/.dist/graphql/queries/userProfile.query.d.ts +2 -0
  158. package/.dist/graphql/queries/userProfile.query.js +33 -0
  159. package/.dist/graphql/queries/userProfile.query.js.map +1 -0
  160. package/.dist/graphql/queries/userRoles.query.d.ts +2 -0
  161. package/.dist/graphql/queries/userRoles.query.js +34 -0
  162. package/.dist/graphql/queries/userRoles.query.js.map +1 -0
  163. package/.dist/graphql/queries/venue.query.js +1 -2
  164. package/.dist/graphql/queries/venue.query.js.map +1 -1
  165. package/.dist/graphql/queries/venues.query.js +23 -36
  166. package/.dist/graphql/queries/venues.query.js.map +1 -1
  167. package/.dist/graphql/queries/webFlowSites.query.d.ts +2 -0
  168. package/.dist/graphql/queries/webFlowSites.query.js +24 -0
  169. package/.dist/graphql/queries/webFlowSites.query.js.map +1 -0
  170. package/.dist/interfaces/IAnalytics.d.ts +60 -0
  171. package/.dist/interfaces/IAnalytics.js +76 -0
  172. package/.dist/interfaces/IAnalytics.js.map +1 -0
  173. package/.dist/interfaces/IArtist.d.ts +0 -2
  174. package/.dist/interfaces/IArtist.js.map +1 -1
  175. package/.dist/interfaces/IEvent.d.ts +14 -2
  176. package/.dist/interfaces/IEvent.js.map +1 -1
  177. package/.dist/interfaces/IEventCustomField.d.ts +5 -2
  178. package/.dist/interfaces/IEventCustomField.js +2 -0
  179. package/.dist/interfaces/IEventCustomField.js.map +1 -1
  180. package/.dist/interfaces/IEventUpgrade.d.ts +1 -0
  181. package/.dist/interfaces/IFee.d.ts +3 -1
  182. package/.dist/interfaces/IFee.js +2 -4
  183. package/.dist/interfaces/IFee.js.map +1 -1
  184. package/.dist/interfaces/IOrder.d.ts +4 -0
  185. package/.dist/interfaces/IOrder.js.map +1 -1
  186. package/.dist/interfaces/IOrderState.d.ts +5 -5
  187. package/.dist/interfaces/IOrderState.js +5 -14
  188. package/.dist/interfaces/IOrderState.js.map +1 -1
  189. package/.dist/interfaces/IOrderTicket.d.ts +2 -0
  190. package/.dist/interfaces/IOrderTicket.js.map +1 -1
  191. package/.dist/interfaces/IOrderType.d.ts +1 -1
  192. package/.dist/interfaces/IOrderType.js +1 -1
  193. package/.dist/interfaces/IOrderType.js.map +1 -1
  194. package/.dist/interfaces/IOrderUpgrade.d.ts +2 -1
  195. package/.dist/interfaces/IPagination.d.ts +9 -0
  196. package/.dist/interfaces/IPagination.js +10 -0
  197. package/.dist/interfaces/IPagination.js.map +1 -1
  198. package/.dist/interfaces/IPayment.d.ts +13 -0
  199. package/.dist/interfaces/IPayment.js +3 -0
  200. package/.dist/interfaces/IPayment.js.map +1 -0
  201. package/.dist/interfaces/IRole.d.ts +15 -7
  202. package/.dist/interfaces/IRole.js +24 -0
  203. package/.dist/interfaces/IRole.js.map +1 -1
  204. package/.dist/interfaces/ISecondaryEmail.d.ts +4 -0
  205. package/.dist/interfaces/ISecondaryEmail.js +3 -0
  206. package/.dist/interfaces/ISecondaryEmail.js.map +1 -0
  207. package/.dist/interfaces/IStripeCustomer.d.ts +6 -0
  208. package/.dist/interfaces/IStripeCustomer.js +3 -0
  209. package/.dist/interfaces/IStripeCustomer.js.map +1 -0
  210. package/.dist/interfaces/IStripeSource.d.ts +10 -0
  211. package/.dist/interfaces/IStripeSource.js +3 -0
  212. package/.dist/interfaces/IStripeSource.js.map +1 -0
  213. package/.dist/interfaces/IStripeTerminalReader.d.ts +9 -0
  214. package/.dist/interfaces/IStripeTerminalReader.js +3 -0
  215. package/.dist/interfaces/IStripeTerminalReader.js.map +1 -0
  216. package/.dist/interfaces/ITicketTier.d.ts +2 -2
  217. package/.dist/interfaces/ITicketType.d.ts +1 -0
  218. package/.dist/interfaces/IUserProfile.d.ts +6 -2
  219. package/.dist/interfaces/IVenue.d.ts +2 -6
  220. package/.dist/schemas/Artist.d.ts +4 -130
  221. package/.dist/schemas/Artist.js +4 -2
  222. package/.dist/schemas/Artist.js.map +1 -1
  223. package/.dist/schemas/Event.d.ts +15 -0
  224. package/.dist/schemas/Event.js +15 -0
  225. package/.dist/schemas/Event.js.map +1 -1
  226. package/.dist/schemas/Order.d.ts +83 -0
  227. package/.dist/schemas/Order.js +84 -0
  228. package/.dist/schemas/Order.js.map +1 -1
  229. package/.dist/schemas/SecondaryEmail.d.ts +12 -0
  230. package/.dist/schemas/SecondaryEmail.js +14 -0
  231. package/.dist/schemas/SecondaryEmail.js.map +1 -0
  232. package/.dist/schemas/UserProfile.d.ts +0 -130
  233. package/.dist/schemas/UserProfile.js +0 -2
  234. package/.dist/schemas/UserProfile.js.map +1 -1
  235. package/.dist/schemas/Venue.d.ts +4 -141
  236. package/.dist/schemas/Venue.js +4 -15
  237. package/.dist/schemas/Venue.js.map +1 -1
  238. package/.dist/sellout-proto.js +29977 -22900
  239. package/.dist/utils/AnalyticsUtil.d.ts +37 -0
  240. package/.dist/utils/AnalyticsUtil.js +557 -0
  241. package/.dist/utils/AnalyticsUtil.js.map +1 -0
  242. package/.dist/utils/EventUtil.d.ts +35 -12
  243. package/.dist/utils/EventUtil.js +80 -15
  244. package/.dist/utils/EventUtil.js.map +1 -1
  245. package/.dist/utils/FeeUtil.d.ts +4 -4
  246. package/.dist/utils/FeeUtil.js +4 -4
  247. package/.dist/utils/FeeUtil.js.map +1 -1
  248. package/package.json +6 -5
  249. package/src/enums/OrderDeliveryMethodEnum.ts +5 -0
  250. package/src/enums/PaymentMethodTypeEnum.ts +5 -0
  251. package/src/graphql/fragments/event.fragment.ts +3 -0
  252. package/src/graphql/links/debounceLink.ts +4 -0
  253. package/src/graphql/mutations/acceptRole.mutation.ts +17 -0
  254. package/src/graphql/mutations/attachStripePaymentMethod.mutation.ts +9 -0
  255. package/src/graphql/mutations/createArtist.mutation.ts +0 -8
  256. package/src/graphql/mutations/createEvent.mutation.ts +0 -2
  257. package/src/graphql/mutations/createOrder.mutation.ts +56 -0
  258. package/src/graphql/mutations/createOrganizationFee.mutation.ts +26 -0
  259. package/src/graphql/mutations/createPlatformFee.mutation.ts +26 -0
  260. package/src/graphql/mutations/createRole.mutation.ts +15 -0
  261. package/src/graphql/mutations/createStripeSetupIntent.mutation.ts +9 -0
  262. package/src/graphql/mutations/createStripeTerminalConnectionToken.mutation.ts +9 -0
  263. package/src/graphql/mutations/createVenue.mutation.ts +31 -0
  264. package/src/graphql/mutations/createWebFlowSite.mutation.ts +38 -0
  265. package/src/graphql/mutations/deleteOrganizationFee.mutation.ts +9 -0
  266. package/src/graphql/mutations/deletePlatformFee.mutation.ts +9 -0
  267. package/src/graphql/mutations/deleteRole.mutation.ts +9 -0
  268. package/src/graphql/mutations/deleteStripeTerminalReader.mutation.ts +9 -0
  269. package/src/graphql/mutations/deleteUnverifiedUser.mutation.ts +10 -0
  270. package/src/graphql/mutations/registerStripeTerminalReader.mutation.ts +17 -0
  271. package/src/graphql/mutations/remapWebFlowSite.mutation.ts +36 -0
  272. package/src/graphql/mutations/sendUserPhoneAuthentication.mutation.ts +9 -0
  273. package/src/graphql/mutations/setUserOrgContextId.mutation.ts +11 -0
  274. package/src/graphql/mutations/setUserPassword.mutation.ts +11 -0
  275. package/src/graphql/mutations/updateArtist.mutation.ts +0 -8
  276. package/src/graphql/mutations/updateEvent.mutation.ts +0 -2
  277. package/src/graphql/mutations/updateOrganizationFee.mutation.ts +26 -0
  278. package/src/graphql/mutations/updatePlatformFee.mutation.ts +26 -0
  279. package/src/graphql/mutations/updateVenue.mutation.ts +31 -0
  280. package/src/graphql/mutations/verifyUserPhoneAuthentication.mutation.ts +11 -0
  281. package/src/graphql/queries/analytics.query.ts +26 -0
  282. package/src/graphql/queries/artist.query.ts +0 -8
  283. package/src/graphql/queries/artists.query.ts +0 -8
  284. package/src/graphql/queries/customerProfile.query.ts +21 -0
  285. package/src/graphql/queries/event.query.ts +3 -2
  286. package/src/graphql/queries/events.query.ts +2 -7
  287. package/src/graphql/queries/listStripeTerminalReaders.query.ts +17 -0
  288. package/src/graphql/queries/orders.query.ts +14 -0
  289. package/src/graphql/queries/organizationFees.query.ts +26 -0
  290. package/src/graphql/queries/organizations.query.ts +45 -0
  291. package/src/graphql/queries/platformFees.query.ts +26 -0
  292. package/src/graphql/queries/profile.query.ts +4 -1
  293. package/src/graphql/queries/profiles.query.ts +1 -8
  294. package/src/graphql/queries/publicEvent.query.ts +53 -0
  295. package/src/graphql/queries/role.query.ts +28 -0
  296. package/src/graphql/queries/seating.query.ts +16 -0
  297. package/src/graphql/queries/userExists.query.ts +14 -0
  298. package/src/graphql/queries/userProfile.query.ts +29 -0
  299. package/src/graphql/queries/userRoles.query.ts +30 -0
  300. package/src/graphql/queries/venue.query.ts +1 -2
  301. package/src/graphql/queries/venues.query.ts +23 -36
  302. package/src/graphql/queries/webFlowSites.query.ts +20 -0
  303. package/src/interfaces/IAnalytics.ts +96 -0
  304. package/src/interfaces/IArtist.ts +0 -2
  305. package/src/interfaces/IEvent.ts +17 -2
  306. package/src/interfaces/IEventCustomField.ts +4 -1
  307. package/src/interfaces/IEventUpgrade.ts +1 -0
  308. package/src/interfaces/IFee.ts +2 -4
  309. package/src/interfaces/IOrder.ts +8 -4
  310. package/src/interfaces/IOrderState.ts +5 -14
  311. package/src/interfaces/IOrderTicket.ts +2 -0
  312. package/src/interfaces/IOrderType.ts +1 -1
  313. package/src/interfaces/IOrderUpgrade.ts +2 -1
  314. package/src/interfaces/IPagination.ts +11 -0
  315. package/src/interfaces/IPayment.ts +13 -0
  316. package/src/interfaces/IRole.ts +26 -8
  317. package/src/interfaces/IStripeCustomer.ts +7 -0
  318. package/src/interfaces/IStripeSource.ts +10 -0
  319. package/src/interfaces/IStripeTerminalReader.ts +9 -0
  320. package/src/interfaces/ITicketTier.ts +2 -2
  321. package/src/interfaces/ITicketType.ts +1 -0
  322. package/src/interfaces/IUserProfile.ts +8 -2
  323. package/src/interfaces/IVenue.ts +2 -6
  324. package/src/proto/artist.proto +1 -2
  325. package/src/proto/broadcast.proto +0 -13
  326. package/src/proto/common.proto +15 -0
  327. package/src/proto/event.proto +4 -1
  328. package/src/proto/order.proto +78 -4
  329. package/src/proto/stripe.proto +135 -0
  330. package/src/proto/venue.proto +7 -10
  331. package/src/schemas/Artist.ts +4 -2
  332. package/src/schemas/Event.ts +15 -0
  333. package/src/schemas/Order.ts +85 -0
  334. package/src/schemas/UserProfile.ts +0 -2
  335. package/src/schemas/Venue.ts +4 -15
  336. package/src/utils/AnalyticsUtil.ts +838 -0
  337. package/src/utils/EventUtil.ts +110 -44
  338. package/src/utils/FeeUtil.ts +4 -4
  339. package/src/utils/fee-util-broken-but-why +36 -0
  340. package/src/interfaces/IMetrics.ts +0 -33
  341. /package/src/graphql/mutations/{forgotPassword.ts → forgotPassword.mutation.ts} +0 -0
  342. /package/src/graphql/mutations/{login.ts → login.mutation.ts} +0 -0
  343. /package/src/graphql/mutations/{register.ts → register.mutation.ts} +0 -0
@@ -0,0 +1,37 @@
1
+ import IAnalytics, { AnalyticsDurationEnum, AnalyticsIntervalEnum, AnalyticsTypeEnum, ICoordinate } from "../interfaces/IAnalytics";
2
+ import IOrder from "../interfaces/IOrder";
3
+ interface IDuration {
4
+ startsAt: number;
5
+ endsAt: number;
6
+ }
7
+ declare type IntervalInfo = {
8
+ startDate: number;
9
+ endDate: number;
10
+ duration: number;
11
+ interval: AnalyticsIntervalEnum;
12
+ intervalOptions: AnalyticsIntervalEnum[];
13
+ intervalLength: number;
14
+ intervalNum: number;
15
+ };
16
+ declare const _default: {
17
+ fromOrders(type: AnalyticsTypeEnum, orders: IOrder[], showSegments: boolean, startDate?: number | undefined, endDate?: number | undefined, interval?: AnalyticsIntervalEnum | undefined): IAnalytics;
18
+ overview(type: AnalyticsTypeEnum, orders: IOrder[], intervalInfo: IntervalInfo): IAnalytics;
19
+ totalSales(type: AnalyticsTypeEnum, orders: IOrder[], intervalInfo: IntervalInfo, showSegments: boolean): IAnalytics;
20
+ ticketSales(type: AnalyticsTypeEnum, orders: IOrder[], intervalInfo: IntervalInfo, showSegments: boolean): IAnalytics;
21
+ ticketsSold(type: AnalyticsTypeEnum, orders: IOrder[], intervalInfo: IntervalInfo, showSegments: boolean): IAnalytics;
22
+ ticketComps(type: AnalyticsTypeEnum, orders: IOrder[], intervalInfo: IntervalInfo, showSegments: boolean): IAnalytics;
23
+ upgradeSales(type: AnalyticsTypeEnum, orders: IOrder[], intervalInfo: IntervalInfo, showSegments: boolean): IAnalytics;
24
+ upgradesSold(type: AnalyticsTypeEnum, orders: IOrder[], intervalInfo: IntervalInfo, showSegments: boolean): IAnalytics;
25
+ upgradeComps(type: AnalyticsTypeEnum, orders: IOrder[], intervalInfo: IntervalInfo, showSegments: boolean): IAnalytics;
26
+ promotions(type: AnalyticsTypeEnum, orders: IOrder[], intervalInfo: IntervalInfo, showSegments: boolean): IAnalytics;
27
+ totalOrders(type: AnalyticsTypeEnum, orders: IOrder[], intervalInfo: IntervalInfo): IAnalytics;
28
+ durationToUnix(duration: AnalyticsDurationEnum): IDuration;
29
+ durationIntervals(interval: AnalyticsDurationEnum): AnalyticsIntervalEnum[];
30
+ getDateFormat(time: any, interval: AnalyticsIntervalEnum): string;
31
+ getTotalValue(coords: ICoordinate[]): number;
32
+ getDisplayMetric(data: IAnalytics, hoverIndex?: number | undefined): string;
33
+ getMaxXVal(dataArray: ICoordinate[]): number;
34
+ getMinXVal(dataArray: ICoordinate[]): number;
35
+ getMaxYVal(dataArray: ICoordinate[]): number;
36
+ };
37
+ export default _default;
@@ -0,0 +1,557 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const IAnalytics_1 = require("../interfaces/IAnalytics");
23
+ const IOrderType_1 = require("../interfaces/IOrderType");
24
+ const Time = __importStar(require("@sellout/utils/.dist/time"));
25
+ const Price = __importStar(require("@sellout/utils/.dist/price"));
26
+ const sum = (array) => (array.length ? array.pop() + sum(array) : 0);
27
+ const makeArray = (intervalNum) => new Array(intervalNum).fill(0);
28
+ const makeCoordinates = (orders, intervalInfo, sumFn) => {
29
+ const { startDate, intervalLength, intervalNum, interval } = intervalInfo;
30
+ const coordinates = makeArray(intervalNum).map((_, index) => {
31
+ // set x to beginning second of interval
32
+ let x;
33
+ switch (interval) {
34
+ case IAnalytics_1.AnalyticsIntervalEnum.Hour:
35
+ x = Time.getStartOfHour(index * intervalLength + startDate);
36
+ break;
37
+ case IAnalytics_1.AnalyticsIntervalEnum.Day:
38
+ x = Time.getStartOfDay(index * intervalLength + startDate);
39
+ break;
40
+ case IAnalytics_1.AnalyticsIntervalEnum.Week:
41
+ x = Time.getStartOfWeek(index * intervalLength + startDate);
42
+ break;
43
+ case IAnalytics_1.AnalyticsIntervalEnum.Month:
44
+ x = Time.getStartOfMonth(index * intervalLength + startDate);
45
+ break;
46
+ case IAnalytics_1.AnalyticsIntervalEnum.Year:
47
+ x = Time.getStartOfYear(index * intervalLength + startDate);
48
+ break;
49
+ default:
50
+ x = Time.getStartOfDay(index * intervalLength + startDate);
51
+ break;
52
+ }
53
+ const y = sumFn(orders
54
+ .filter((order) => {
55
+ const createdAt = order.createdAt;
56
+ return x <= createdAt && createdAt < x + intervalLength;
57
+ }));
58
+ return {
59
+ x,
60
+ y,
61
+ };
62
+ });
63
+ // quick solution to remove duplicated coordinates
64
+ // real issue is probably above..
65
+ const uniqueCoords = Array.from(new Set(coordinates.map(a => a.x)))
66
+ .map(x => {
67
+ return coordinates.find(a => a.x === x);
68
+ });
69
+ return uniqueCoords;
70
+ };
71
+ const makeAnalytics = (type, orders, intervalInfo, valueType, coordinatesSumFn, segmentTypes, segmentCoordinatesHOSumFn) => {
72
+ var _a;
73
+ const { interval, intervalOptions } = intervalInfo;
74
+ const segments = (_a = segmentTypes === null || segmentTypes === void 0 ? void 0 : segmentTypes.map((segmentType) => {
75
+ const coordinates = segmentCoordinatesHOSumFn
76
+ ? makeCoordinates(orders, intervalInfo, segmentCoordinatesHOSumFn(segmentType))
77
+ : [];
78
+ const segment = {
79
+ label: segmentType,
80
+ interval: interval,
81
+ intervalOptions: intervalOptions,
82
+ coordinates,
83
+ segments: [],
84
+ type: valueType,
85
+ };
86
+ return segment;
87
+ })) !== null && _a !== void 0 ? _a : [];
88
+ const coordinates = makeCoordinates(orders, intervalInfo, coordinatesSumFn);
89
+ const analytics = {
90
+ label: type,
91
+ interval: interval,
92
+ intervalOptions: intervalOptions,
93
+ coordinates,
94
+ segments,
95
+ type: valueType,
96
+ };
97
+ return analytics;
98
+ };
99
+ const intervalMap = {
100
+ [IAnalytics_1.AnalyticsIntervalEnum.Hour]: 60 * 60,
101
+ [IAnalytics_1.AnalyticsIntervalEnum.Day]: 60 * 60 * 24,
102
+ [IAnalytics_1.AnalyticsIntervalEnum.Week]: 60 * 60 * 24 * 7,
103
+ [IAnalytics_1.AnalyticsIntervalEnum.Month]: 60 * 60 * 24 * 30,
104
+ [IAnalytics_1.AnalyticsIntervalEnum.Year]: 60 * 60 * 24 * 365,
105
+ };
106
+ const orderedIntervals = [
107
+ IAnalytics_1.AnalyticsIntervalEnum.Hour,
108
+ IAnalytics_1.AnalyticsIntervalEnum.Day,
109
+ IAnalytics_1.AnalyticsIntervalEnum.Week,
110
+ IAnalytics_1.AnalyticsIntervalEnum.Month,
111
+ IAnalytics_1.AnalyticsIntervalEnum.Year,
112
+ ];
113
+ const maxDuration = (interval) => {
114
+ return intervalMap[interval] * 60;
115
+ };
116
+ const getIntervalFromDuration = (duration) => {
117
+ const maxHour = maxDuration(IAnalytics_1.AnalyticsIntervalEnum.Hour);
118
+ const maxDay = maxDuration(IAnalytics_1.AnalyticsIntervalEnum.Day);
119
+ const maxWeek = maxDuration(IAnalytics_1.AnalyticsIntervalEnum.Week);
120
+ const maxMonth = maxDuration(IAnalytics_1.AnalyticsIntervalEnum.Month);
121
+ if (duration <= maxHour) {
122
+ return IAnalytics_1.AnalyticsIntervalEnum.Hour;
123
+ }
124
+ else if (duration <= maxDay) {
125
+ return IAnalytics_1.AnalyticsIntervalEnum.Day;
126
+ }
127
+ else if (duration <= maxWeek) {
128
+ return IAnalytics_1.AnalyticsIntervalEnum.Week;
129
+ }
130
+ else if (duration <= maxMonth) {
131
+ return IAnalytics_1.AnalyticsIntervalEnum.Month;
132
+ }
133
+ else {
134
+ return IAnalytics_1.AnalyticsIntervalEnum.Year;
135
+ }
136
+ };
137
+ const getIntervalInfo = (orders, startDate, endDate, interval) => {
138
+ var _a, _b;
139
+ startDate = startDate || ((_a = orders[orders.length - 1]) === null || _a === void 0 ? void 0 : _a.createdAt) || Time.getStartOfCurrentDay();
140
+ endDate = endDate || ((_b = orders[0]) === null || _b === void 0 ? void 0 : _b.createdAt) || Time.getEndOfCurrentDay();
141
+ const duration = endDate - startDate; // duration in seconds
142
+ if (!interval) {
143
+ interval = getIntervalFromDuration(duration);
144
+ }
145
+ const intervalLength = intervalMap[interval];
146
+ const intervalNum = Math.ceil(duration / intervalLength);
147
+ const intervalOptions = [interval];
148
+ const altIntervalIndex = orderedIntervals.indexOf(interval) + 1;
149
+ const altInterval = orderedIntervals[altIntervalIndex];
150
+ if (altInterval)
151
+ intervalOptions.push(altInterval);
152
+ return {
153
+ startDate,
154
+ endDate,
155
+ duration,
156
+ interval,
157
+ intervalOptions,
158
+ intervalLength,
159
+ intervalNum,
160
+ };
161
+ };
162
+ exports.default = {
163
+ fromOrders(type, orders, showSegments, startDate, endDate, interval) {
164
+ const intervalInfo = getIntervalInfo(orders, startDate, endDate, interval);
165
+ switch (type) {
166
+ case IAnalytics_1.AnalyticsTypeEnum.Overview:
167
+ return this.overview(type, orders, intervalInfo);
168
+ case IAnalytics_1.AnalyticsTypeEnum.TotalSales:
169
+ return this.totalSales(type, orders, intervalInfo, showSegments);
170
+ case IAnalytics_1.AnalyticsTypeEnum.TicketSales:
171
+ return this.ticketSales(type, orders, intervalInfo, showSegments);
172
+ case IAnalytics_1.AnalyticsTypeEnum.TicketsSold:
173
+ return this.ticketsSold(type, orders, intervalInfo, showSegments);
174
+ case IAnalytics_1.AnalyticsTypeEnum.TicketComps:
175
+ return this.ticketComps(type, orders, intervalInfo, showSegments);
176
+ case IAnalytics_1.AnalyticsTypeEnum.UpgradeSales:
177
+ return this.upgradeSales(type, orders, intervalInfo, showSegments);
178
+ case IAnalytics_1.AnalyticsTypeEnum.UpgradesSold:
179
+ return this.upgradesSold(type, orders, intervalInfo, showSegments);
180
+ case IAnalytics_1.AnalyticsTypeEnum.TicketComps:
181
+ return this.ticketComps(type, orders, intervalInfo, showSegments);
182
+ case IAnalytics_1.AnalyticsTypeEnum.Promotions:
183
+ return this.promotions(type, orders, intervalInfo, showSegments);
184
+ case IAnalytics_1.AnalyticsTypeEnum.TotalOrders:
185
+ return this.totalOrders(type, orders, intervalInfo);
186
+ default:
187
+ return {
188
+ label: type,
189
+ interval: interval,
190
+ intervalOptions: [],
191
+ coordinates: [{ x: 0, y: 0 }],
192
+ segments: [],
193
+ type: IAnalytics_1.AnalyticsValueTypeEnum.Quantity,
194
+ };
195
+ }
196
+ },
197
+ overview(type, orders, intervalInfo) {
198
+ const coordinatesSumFn = (orders) => orders
199
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
200
+ .reduce((cur, order) => cur + sum(order.tickets.map(ticket => ticket.price)) + sum(order.upgrades.map(upgrade => upgrade.price)), 0);
201
+ const coordinates = makeCoordinates(orders, intervalInfo, coordinatesSumFn);
202
+ const { interval, intervalOptions } = intervalInfo;
203
+ let segments = [];
204
+ const coordinatesSumFn2 = (orders) => orders
205
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
206
+ .reduce((cur, order) => cur + order.tickets.length, 0);
207
+ const segmentCoordinates = makeCoordinates(orders, intervalInfo, coordinatesSumFn2);
208
+ let segment = {
209
+ label: 'Tickets Sold',
210
+ interval: interval,
211
+ intervalOptions: intervalOptions,
212
+ coordinates: segmentCoordinates,
213
+ segments: [],
214
+ type: IAnalytics_1.AnalyticsValueTypeEnum.Quantity,
215
+ };
216
+ segments.push(segment);
217
+ const coordinatesSumFn3 = (orders) => orders.length;
218
+ const segmentCoordinates2 = makeCoordinates(orders, intervalInfo, coordinatesSumFn3);
219
+ segment = {
220
+ label: 'Orders',
221
+ interval: interval,
222
+ intervalOptions: intervalOptions,
223
+ coordinates: segmentCoordinates2,
224
+ segments: [],
225
+ type: IAnalytics_1.AnalyticsValueTypeEnum.Quantity,
226
+ };
227
+ segments.push(segment);
228
+ const analytics = {
229
+ label: 'Total Sales',
230
+ interval: interval,
231
+ intervalOptions: intervalOptions,
232
+ coordinates,
233
+ segments,
234
+ type: IAnalytics_1.AnalyticsValueTypeEnum.Currency,
235
+ };
236
+ return analytics;
237
+ },
238
+ totalSales(type, orders, intervalInfo, showSegments) {
239
+ const coordinatesSumFn = (orders) => orders
240
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
241
+ .reduce((cur, order) => cur + sum(order.tickets.map(ticket => ticket.price)) + sum(order.upgrades.map(upgrade => upgrade.price)), 0);
242
+ let segmentTypes;
243
+ let segmentCoordinatesHOSumFn;
244
+ // if (showSegments) {
245
+ // segmentTypes = Object.keys(
246
+ // orders
247
+ // .reduce((cur, next: IOrder) => {
248
+ // return cur.concat(next.tickets);
249
+ // }, [] as IOrderTicket[])
250
+ // .reduce((cur, next: IOrderTicket) => {
251
+ // cur[next.name] = true;
252
+ // return cur;
253
+ // }, {})
254
+ // );
255
+ // segmentCoordinatesHOSumFn = (segmentType: string) => (orders: IOrder[]) =>
256
+ // orders
257
+ // .filter(order => order.type === OrderTypeEnum.Paid)
258
+ // .reduce((cur, order) => cur + sum(
259
+ // order.tickets
260
+ // .filter((ticket) => ticket.name === segmentType)
261
+ // .map((ticket) => ticket.price)), 0);
262
+ // }
263
+ return makeAnalytics(type, orders, intervalInfo, IAnalytics_1.AnalyticsValueTypeEnum.Currency, coordinatesSumFn, segmentTypes, segmentCoordinatesHOSumFn);
264
+ },
265
+ ticketSales(type, orders, intervalInfo, showSegments) {
266
+ const coordinatesSumFn = (orders) => orders
267
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
268
+ .reduce((cur, order) => cur + sum(order.tickets.map(ticket => ticket.price)), 0);
269
+ let segmentTypes;
270
+ let segmentCoordinatesHOSumFn;
271
+ if (showSegments) {
272
+ segmentTypes = Object.keys(orders
273
+ .reduce((cur, next) => {
274
+ return cur.concat(next.tickets);
275
+ }, [])
276
+ .reduce((cur, next) => {
277
+ cur[next.name] = true;
278
+ return cur;
279
+ }, {}));
280
+ segmentCoordinatesHOSumFn = (segmentType) => (orders) => orders
281
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
282
+ .reduce((cur, order) => cur + sum(order.tickets
283
+ .filter((ticket) => ticket.name === segmentType)
284
+ .map((ticket) => ticket.price)), 0);
285
+ }
286
+ return makeAnalytics(type, orders, intervalInfo, IAnalytics_1.AnalyticsValueTypeEnum.Currency, coordinatesSumFn, segmentTypes, segmentCoordinatesHOSumFn);
287
+ },
288
+ ticketsSold(type, orders, intervalInfo, showSegments) {
289
+ const coordinatesSumFn = (orders) => orders
290
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
291
+ .reduce((cur, order) => cur + order.tickets.length, 0);
292
+ let segmentTypes;
293
+ let segmentCoordinatesHOSumFn;
294
+ if (showSegments) {
295
+ segmentTypes = Object.keys(orders
296
+ .reduce((cur, next) => {
297
+ return cur.concat(next.tickets);
298
+ }, [])
299
+ .reduce((cur, next) => {
300
+ cur[next.name] = true;
301
+ return cur;
302
+ }, {}));
303
+ segmentCoordinatesHOSumFn = (segmentType) => (orders) => orders
304
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
305
+ .reduce((cur, order) => cur + order.tickets.filter((ticket) => ticket.name === segmentType).length, 0);
306
+ }
307
+ return makeAnalytics(type, orders, intervalInfo, IAnalytics_1.AnalyticsValueTypeEnum.Quantity, coordinatesSumFn, segmentTypes, segmentCoordinatesHOSumFn);
308
+ },
309
+ ticketComps(type, orders, intervalInfo, showSegments) {
310
+ const coordinatesSumFn = (orders) => orders
311
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Complimentary)
312
+ .reduce((cur, order) => cur + order.tickets.length, 0);
313
+ let segmentTypes;
314
+ let segmentCoordinatesHOSumFn;
315
+ if (showSegments) {
316
+ segmentTypes = Object.keys(orders
317
+ .reduce((cur, next) => {
318
+ return cur.concat(next.tickets);
319
+ }, [])
320
+ .reduce((cur, next) => {
321
+ cur[next.name] = true;
322
+ return cur;
323
+ }, {}));
324
+ segmentCoordinatesHOSumFn = (segmentType) => (orders) => orders
325
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Complimentary)
326
+ .reduce((cur, order) => cur + order.tickets.filter((ticket) => ticket.name === segmentType).length, 0);
327
+ }
328
+ return makeAnalytics(type, orders, intervalInfo, IAnalytics_1.AnalyticsValueTypeEnum.Quantity, coordinatesSumFn, segmentTypes, segmentCoordinatesHOSumFn);
329
+ },
330
+ upgradeSales(type, orders, intervalInfo, showSegments) {
331
+ const coordinatesSumFn = (orders) => orders
332
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
333
+ .reduce((cur, order) => cur + sum(order.upgrades.map(upgrade => upgrade.price)), 0);
334
+ let segmentTypes;
335
+ let segmentCoordinatesHOSumFn;
336
+ if (showSegments) {
337
+ segmentTypes = Object.keys(orders
338
+ .reduce((cur, next) => {
339
+ return cur.concat(next.upgrades);
340
+ }, [])
341
+ .reduce((cur, next) => {
342
+ cur[next.name] = true;
343
+ return cur;
344
+ }, {}));
345
+ segmentCoordinatesHOSumFn = (segmentType) => (orders) => orders
346
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
347
+ .reduce((cur, order) => cur + sum(order.upgrades
348
+ .filter((upgrade) => upgrade.name === segmentType)
349
+ .map((upgrade) => upgrade.price)), 0);
350
+ }
351
+ return makeAnalytics(type, orders, intervalInfo, IAnalytics_1.AnalyticsValueTypeEnum.Currency, coordinatesSumFn, segmentTypes, segmentCoordinatesHOSumFn);
352
+ },
353
+ upgradesSold(type, orders, intervalInfo, showSegments) {
354
+ const coordinatesSumFn = (orders) => orders
355
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
356
+ .reduce((cur, order) => cur + order.upgrades.length, 0);
357
+ let segmentTypes;
358
+ let segmentCoordinatesHOSumFn;
359
+ if (showSegments) {
360
+ segmentTypes = Object.keys(orders
361
+ .reduce((cur, next) => {
362
+ return cur.concat(next.upgrades);
363
+ }, [])
364
+ .reduce((cur, next) => {
365
+ cur[next.name] = true;
366
+ return cur;
367
+ }, {}));
368
+ segmentCoordinatesHOSumFn = (segmentType) => (orders) => orders
369
+ .filter(order => order.type === IOrderType_1.OrderTypeEnum.Paid)
370
+ .reduce((cur, order) => cur + order.upgrades.filter((upgrade) => upgrade.name === segmentType).length, 0);
371
+ }
372
+ return makeAnalytics(type, orders, intervalInfo, IAnalytics_1.AnalyticsValueTypeEnum.Quantity, coordinatesSumFn, segmentTypes, segmentCoordinatesHOSumFn);
373
+ },
374
+ upgradeComps(type, orders, intervalInfo, showSegments) {
375
+ const coordinatesSumFn = (orders) => orders
376
+ .reduce((cur, order) => cur + order.upgrades.filter(upgrade => upgrade.price === 0).length, 0);
377
+ let segmentTypes;
378
+ let segmentCoordinatesHOSumFn;
379
+ if (showSegments) {
380
+ segmentTypes = Object.keys(orders
381
+ .reduce((cur, next) => {
382
+ return cur.concat(next.tickets);
383
+ }, [])
384
+ .reduce((cur, next) => {
385
+ cur[next.name] = true;
386
+ return cur;
387
+ }, {}));
388
+ segmentCoordinatesHOSumFn = (segmentType) => (orders) => orders
389
+ .reduce((cur, order) => cur + order.upgrades.filter((upgrade) => upgrade.name === segmentType && upgrade.price === 0).length, 0);
390
+ }
391
+ return makeAnalytics(type, orders, intervalInfo, IAnalytics_1.AnalyticsValueTypeEnum.Quantity, coordinatesSumFn, segmentTypes, segmentCoordinatesHOSumFn);
392
+ },
393
+ promotions(type, orders, intervalInfo, showSegments) {
394
+ const coordinatesSumFn = (orders) => orders.filter(order => Boolean(order.promotionCode))
395
+ .length;
396
+ let segmentTypes;
397
+ let segmentCoordinatesHOSumFn;
398
+ if (showSegments) {
399
+ segmentTypes = Object.keys(orders.reduce((cur, next) => {
400
+ if (next.promotionCode)
401
+ cur[next.promotionCode] = true;
402
+ return cur;
403
+ }, {}));
404
+ segmentCoordinatesHOSumFn = (segmentType) => (orders) => orders
405
+ .filter(order => order.promotionCode === segmentType)
406
+ .length;
407
+ }
408
+ return makeAnalytics(type, orders, intervalInfo, IAnalytics_1.AnalyticsValueTypeEnum.Quantity, coordinatesSumFn, segmentTypes, segmentCoordinatesHOSumFn);
409
+ },
410
+ totalOrders(type, orders, intervalInfo) {
411
+ const coordinatesSumFn = (orders) => orders.length;
412
+ return makeAnalytics(type, orders, intervalInfo, IAnalytics_1.AnalyticsValueTypeEnum.Quantity, coordinatesSumFn);
413
+ },
414
+ // Returns start and end date
415
+ durationToUnix(duration) {
416
+ const durations = {
417
+ [IAnalytics_1.AnalyticsDurationEnum.AllTime]: () => {
418
+ const duration = {
419
+ startsAt: 0,
420
+ endsAt: 0,
421
+ };
422
+ return duration;
423
+ },
424
+ [IAnalytics_1.AnalyticsDurationEnum.Today]: () => {
425
+ const duration = {
426
+ startsAt: Time.getStartOfCurrentDay(),
427
+ endsAt: Time.getEndOfCurrentDay()
428
+ };
429
+ return duration;
430
+ },
431
+ [IAnalytics_1.AnalyticsDurationEnum.OneWeek]: () => {
432
+ const duration = {
433
+ startsAt: Time.now() - Time.DAY * 7,
434
+ endsAt: Time.now(),
435
+ };
436
+ return duration;
437
+ },
438
+ [IAnalytics_1.AnalyticsDurationEnum.OneMonth]: () => {
439
+ const duration = {
440
+ startsAt: Time.now() - Time.DAY * 30,
441
+ endsAt: Time.now(),
442
+ };
443
+ return duration;
444
+ },
445
+ [IAnalytics_1.AnalyticsDurationEnum.MonthToDate]: () => {
446
+ const duration = {
447
+ startsAt: Time.getStartOfCurrentMonth(),
448
+ endsAt: Time.now(),
449
+ };
450
+ return duration;
451
+ },
452
+ [IAnalytics_1.AnalyticsDurationEnum.YearToDate]: () => {
453
+ const duration = {
454
+ startsAt: Time.getStartOfCurrentYear(),
455
+ endsAt: Time.now(),
456
+ };
457
+ return duration;
458
+ },
459
+ [IAnalytics_1.AnalyticsDurationEnum.OneYear]: () => {
460
+ const duration = {
461
+ startsAt: Time.now() - Time.DAY * 365,
462
+ endsAt: Time.now(),
463
+ };
464
+ return duration;
465
+ },
466
+ [IAnalytics_1.AnalyticsDurationEnum.Custom]: () => {
467
+ const duration = {
468
+ startsAt: 0,
469
+ endsAt: 0,
470
+ };
471
+ return duration;
472
+ },
473
+ };
474
+ return durations[duration]();
475
+ },
476
+ // Returns available intervals
477
+ durationIntervals(interval) {
478
+ const intervals = {
479
+ [IAnalytics_1.AnalyticsDurationEnum.AllTime]: () => {
480
+ return [];
481
+ },
482
+ [IAnalytics_1.AnalyticsDurationEnum.Today]: () => {
483
+ return [IAnalytics_1.AnalyticsIntervalEnum.Hour];
484
+ },
485
+ [IAnalytics_1.AnalyticsDurationEnum.OneWeek]: () => {
486
+ return [IAnalytics_1.AnalyticsIntervalEnum.Day];
487
+ },
488
+ [IAnalytics_1.AnalyticsDurationEnum.OneMonth]: () => {
489
+ return [IAnalytics_1.AnalyticsIntervalEnum.Day, IAnalytics_1.AnalyticsIntervalEnum.Week];
490
+ },
491
+ [IAnalytics_1.AnalyticsDurationEnum.MonthToDate]: () => {
492
+ return [IAnalytics_1.AnalyticsIntervalEnum.Day, IAnalytics_1.AnalyticsIntervalEnum.Week];
493
+ },
494
+ [IAnalytics_1.AnalyticsDurationEnum.YearToDate]: () => {
495
+ return [IAnalytics_1.AnalyticsIntervalEnum.Week, IAnalytics_1.AnalyticsIntervalEnum.Month];
496
+ },
497
+ [IAnalytics_1.AnalyticsDurationEnum.OneYear]: () => {
498
+ return [IAnalytics_1.AnalyticsIntervalEnum.Week, IAnalytics_1.AnalyticsIntervalEnum.Month];
499
+ },
500
+ [IAnalytics_1.AnalyticsDurationEnum.Custom]: () => {
501
+ return [];
502
+ },
503
+ };
504
+ return intervals[interval]();
505
+ },
506
+ getDateFormat(time, interval) {
507
+ switch (interval) {
508
+ case IAnalytics_1.AnalyticsIntervalEnum.Hour:
509
+ return Time.format(time, 'h:mma');
510
+ case IAnalytics_1.AnalyticsIntervalEnum.Day:
511
+ return Time.format(time, 'MMM DD');
512
+ case IAnalytics_1.AnalyticsIntervalEnum.Week:
513
+ return `${Time.format(time, 'MMM DD')} - ${Time.format(time + (Time.DAY * 7), 'MMM DD')}`;
514
+ case IAnalytics_1.AnalyticsIntervalEnum.Month:
515
+ return Time.format(time, 'MMM YYYY');
516
+ case IAnalytics_1.AnalyticsIntervalEnum.Year:
517
+ return Time.format(time, 'YYYY');
518
+ default:
519
+ return Time.format(time, 'MMM DD');
520
+ }
521
+ },
522
+ getTotalValue(coords) {
523
+ if (!coords) {
524
+ return 0;
525
+ }
526
+ return coords.reduce((acc, next) => {
527
+ return acc += next.y;
528
+ }, 0);
529
+ },
530
+ getDisplayMetric(data, hoverIndex) {
531
+ let val = 0;
532
+ if (data.coordinates) {
533
+ if (hoverIndex === undefined) {
534
+ val = this.getTotalValue(data.coordinates);
535
+ }
536
+ else {
537
+ let coord = data === null || data === void 0 ? void 0 : data.coordinates.find((coord) => coord.x === hoverIndex);
538
+ if (coord)
539
+ val = coord.y;
540
+ }
541
+ }
542
+ if (data.type === IAnalytics_1.AnalyticsValueTypeEnum.Currency) {
543
+ return `$${Price.output(val)}`;
544
+ }
545
+ return val === null || val === void 0 ? void 0 : val.toString();
546
+ },
547
+ getMaxXVal(dataArray) {
548
+ return dataArray.reduce((max, p) => p.x > max ? p.x : max, 0);
549
+ },
550
+ getMinXVal(dataArray) {
551
+ return dataArray.reduce((min, p) => p.x < min ? p.x : min, Infinity);
552
+ },
553
+ getMaxYVal(dataArray) {
554
+ return dataArray.reduce((max, p) => p.y > max ? p.y : max, 0);
555
+ }
556
+ };
557
+ //# sourceMappingURL=AnalyticsUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalyticsUtil.js","sourceRoot":"","sources":["../../src/utils/AnalyticsUtil.ts"],"names":[],"mappings":"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"}