@sellout/models 0.0.434 → 0.0.436

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 (61) hide show
  1. package/.dist/graphql/fragments/order.fragment.js +1 -0
  2. package/.dist/graphql/fragments/order.fragment.js.map +1 -1
  3. package/.dist/graphql/mutations/batchPrintBreakApartOrder.mutation.js +1 -0
  4. package/.dist/graphql/mutations/batchPrintBreakApartOrder.mutation.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 +1 -0
  8. package/.dist/graphql/mutations/createEvent.mutation.js.map +1 -1
  9. package/.dist/graphql/mutations/duplicateEvent.mutation.js +1 -0
  10. package/.dist/graphql/mutations/duplicateEvent.mutation.js.map +1 -1
  11. package/.dist/graphql/mutations/multipleBreakApartOrder.mutation.js +1 -0
  12. package/.dist/graphql/mutations/multipleBreakApartOrder.mutation.js.map +1 -1
  13. package/.dist/graphql/mutations/publishEvent.mutation.js +1 -0
  14. package/.dist/graphql/mutations/publishEvent.mutation.js.map +1 -1
  15. package/.dist/graphql/mutations/updateEvent.mutation.js +1 -0
  16. package/.dist/graphql/mutations/updateEvent.mutation.js.map +1 -1
  17. package/.dist/graphql/queries/event.query.js +1 -0
  18. package/.dist/graphql/queries/event.query.js.map +1 -1
  19. package/.dist/graphql/queries/order.query.js +1 -0
  20. package/.dist/graphql/queries/order.query.js.map +1 -1
  21. package/.dist/graphql/queries/orders.query.js +1 -0
  22. package/.dist/graphql/queries/orders.query.js.map +1 -1
  23. package/.dist/graphql/queries/ordersTableOptimized.query.js +2 -0
  24. package/.dist/graphql/queries/ordersTableOptimized.query.js.map +1 -1
  25. package/.dist/graphql/queries/publicEvent.query.js +1 -0
  26. package/.dist/graphql/queries/publicEvent.query.js.map +1 -1
  27. package/.dist/interfaces/IEvent.d.ts +5 -0
  28. package/.dist/interfaces/IEvent.js +6 -1
  29. package/.dist/interfaces/IEvent.js.map +1 -1
  30. package/.dist/interfaces/IScan.d.ts +1 -0
  31. package/.dist/schemas/Event.d.ts +6 -1
  32. package/.dist/schemas/Event.js +5 -0
  33. package/.dist/schemas/Event.js.map +1 -1
  34. package/.dist/schemas/Order.d.ts +8 -0
  35. package/.dist/schemas/Order.js +3 -0
  36. package/.dist/schemas/Order.js.map +1 -1
  37. package/.dist/sellout-proto.js +153 -0
  38. package/.dist/utils/EventUtil.d.ts +12 -0
  39. package/.dist/utils/EventUtil.js +88 -0
  40. package/.dist/utils/EventUtil.js.map +1 -1
  41. package/package.json +3 -3
  42. package/src/graphql/fragments/order.fragment.ts +1 -0
  43. package/src/graphql/mutations/batchPrintBreakApartOrder.mutation.ts +1 -0
  44. package/src/graphql/mutations/breakApartOrder.ts +1 -0
  45. package/src/graphql/mutations/createEvent.mutation.ts +1 -0
  46. package/src/graphql/mutations/duplicateEvent.mutation.ts +1 -0
  47. package/src/graphql/mutations/multipleBreakApartOrder.mutation.ts +1 -0
  48. package/src/graphql/mutations/publishEvent.mutation.ts +1 -0
  49. package/src/graphql/mutations/updateEvent.mutation.ts +1 -0
  50. package/src/graphql/queries/event.query.ts +1 -0
  51. package/src/graphql/queries/order.query.ts +1 -0
  52. package/src/graphql/queries/orders.query.ts +1 -0
  53. package/src/graphql/queries/ordersTableOptimized.query.ts +2 -0
  54. package/src/graphql/queries/publicEvent.query.ts +1 -0
  55. package/src/interfaces/IEvent.ts +6 -0
  56. package/src/interfaces/IScan.ts +1 -0
  57. package/src/proto/event.proto +4 -0
  58. package/src/proto/order.proto +2 -0
  59. package/src/schemas/Event.ts +6 -1
  60. package/src/schemas/Order.ts +3 -0
  61. package/src/utils/EventUtil.ts +114 -0
@@ -19061,6 +19061,7 @@ $root.Scan = (function() {
19061
19061
  * @property {string|null} [scannedBy] Scan scannedBy
19062
19062
  * @property {number|null} [startsAt] Scan startsAt
19063
19063
  * @property {string|null} [scannerName] Scan scannerName
19064
+ * @property {number|null} [endsAt] Scan endsAt
19064
19065
  */
19065
19066
 
19066
19067
  /**
@@ -19118,6 +19119,14 @@ $root.Scan = (function() {
19118
19119
  */
19119
19120
  Scan.prototype.scannerName = "";
19120
19121
 
19122
+ /**
19123
+ * Scan endsAt.
19124
+ * @member {number} endsAt
19125
+ * @memberof Scan
19126
+ * @instance
19127
+ */
19128
+ Scan.prototype.endsAt = 0;
19129
+
19121
19130
  /**
19122
19131
  * Creates a new Scan instance using the specified properties.
19123
19132
  * @function create
@@ -19152,6 +19161,8 @@ $root.Scan = (function() {
19152
19161
  writer.uint32(/* id 3, wireType 0 =*/24).int32(message.startsAt);
19153
19162
  if (message.scannerName != null && Object.hasOwnProperty.call(message, "scannerName"))
19154
19163
  writer.uint32(/* id 4, wireType 2 =*/34).string(message.scannerName);
19164
+ if (message.endsAt != null && Object.hasOwnProperty.call(message, "endsAt"))
19165
+ writer.uint32(/* id 5, wireType 0 =*/40).int32(message.endsAt);
19155
19166
  return writer;
19156
19167
  };
19157
19168
 
@@ -19201,6 +19212,9 @@ $root.Scan = (function() {
19201
19212
  case 4:
19202
19213
  message.scannerName = reader.string();
19203
19214
  break;
19215
+ case 5:
19216
+ message.endsAt = reader.int32();
19217
+ break;
19204
19218
  default:
19205
19219
  reader.skipType(tag & 7);
19206
19220
  break;
@@ -19251,6 +19265,9 @@ $root.Scan = (function() {
19251
19265
  if (message.scannerName != null && message.hasOwnProperty("scannerName"))
19252
19266
  if (!$util.isString(message.scannerName))
19253
19267
  return "scannerName: string expected";
19268
+ if (message.endsAt != null && message.hasOwnProperty("endsAt"))
19269
+ if (!$util.isInteger(message.endsAt))
19270
+ return "endsAt: integer expected";
19254
19271
  return null;
19255
19272
  };
19256
19273
 
@@ -19276,6 +19293,8 @@ $root.Scan = (function() {
19276
19293
  message.startsAt = object.startsAt | 0;
19277
19294
  if (object.scannerName != null)
19278
19295
  message.scannerName = String(object.scannerName);
19296
+ if (object.endsAt != null)
19297
+ message.endsAt = object.endsAt | 0;
19279
19298
  return message;
19280
19299
  };
19281
19300
 
@@ -19298,6 +19317,7 @@ $root.Scan = (function() {
19298
19317
  object.scannedBy = "";
19299
19318
  object.startsAt = 0;
19300
19319
  object.scannerName = "";
19320
+ object.endsAt = 0;
19301
19321
  }
19302
19322
  if (message.scanned != null && message.hasOwnProperty("scanned"))
19303
19323
  object.scanned = message.scanned;
@@ -19309,6 +19329,8 @@ $root.Scan = (function() {
19309
19329
  object.startsAt = message.startsAt;
19310
19330
  if (message.scannerName != null && message.hasOwnProperty("scannerName"))
19311
19331
  object.scannerName = message.scannerName;
19332
+ if (message.endsAt != null && message.hasOwnProperty("endsAt"))
19333
+ object.endsAt = message.endsAt;
19312
19334
  return object;
19313
19335
  };
19314
19336
 
@@ -52906,6 +52928,7 @@ $root.MobileCheckInScan = (function() {
52906
52928
  * @property {boolean|null} [scanned] MobileCheckInScan scanned
52907
52929
  * @property {number|null} [scannedAt] MobileCheckInScan scannedAt
52908
52930
  * @property {number|null} [startsAt] MobileCheckInScan startsAt
52931
+ * @property {number|null} [endsAt] MobileCheckInScan endsAt
52909
52932
  */
52910
52933
 
52911
52934
  /**
@@ -52947,6 +52970,14 @@ $root.MobileCheckInScan = (function() {
52947
52970
  */
52948
52971
  MobileCheckInScan.prototype.startsAt = 0;
52949
52972
 
52973
+ /**
52974
+ * MobileCheckInScan endsAt.
52975
+ * @member {number} endsAt
52976
+ * @memberof MobileCheckInScan
52977
+ * @instance
52978
+ */
52979
+ MobileCheckInScan.prototype.endsAt = 0;
52980
+
52950
52981
  /**
52951
52982
  * Creates a new MobileCheckInScan instance using the specified properties.
52952
52983
  * @function create
@@ -52977,6 +53008,8 @@ $root.MobileCheckInScan = (function() {
52977
53008
  writer.uint32(/* id 2, wireType 0 =*/16).int32(message.scannedAt);
52978
53009
  if (message.startsAt != null && Object.hasOwnProperty.call(message, "startsAt"))
52979
53010
  writer.uint32(/* id 3, wireType 0 =*/24).int32(message.startsAt);
53011
+ if (message.endsAt != null && Object.hasOwnProperty.call(message, "endsAt"))
53012
+ writer.uint32(/* id 4, wireType 0 =*/32).int32(message.endsAt);
52980
53013
  return writer;
52981
53014
  };
52982
53015
 
@@ -53020,6 +53053,9 @@ $root.MobileCheckInScan = (function() {
53020
53053
  case 3:
53021
53054
  message.startsAt = reader.int32();
53022
53055
  break;
53056
+ case 4:
53057
+ message.endsAt = reader.int32();
53058
+ break;
53023
53059
  default:
53024
53060
  reader.skipType(tag & 7);
53025
53061
  break;
@@ -53064,6 +53100,9 @@ $root.MobileCheckInScan = (function() {
53064
53100
  if (message.startsAt != null && message.hasOwnProperty("startsAt"))
53065
53101
  if (!$util.isInteger(message.startsAt))
53066
53102
  return "startsAt: integer expected";
53103
+ if (message.endsAt != null && message.hasOwnProperty("endsAt"))
53104
+ if (!$util.isInteger(message.endsAt))
53105
+ return "endsAt: integer expected";
53067
53106
  return null;
53068
53107
  };
53069
53108
 
@@ -53085,6 +53124,8 @@ $root.MobileCheckInScan = (function() {
53085
53124
  message.scannedAt = object.scannedAt | 0;
53086
53125
  if (object.startsAt != null)
53087
53126
  message.startsAt = object.startsAt | 0;
53127
+ if (object.endsAt != null)
53128
+ message.endsAt = object.endsAt | 0;
53088
53129
  return message;
53089
53130
  };
53090
53131
 
@@ -53105,6 +53146,7 @@ $root.MobileCheckInScan = (function() {
53105
53146
  object.scanned = false;
53106
53147
  object.scannedAt = 0;
53107
53148
  object.startsAt = 0;
53149
+ object.endsAt = 0;
53108
53150
  }
53109
53151
  if (message.scanned != null && message.hasOwnProperty("scanned"))
53110
53152
  object.scanned = message.scanned;
@@ -53112,6 +53154,8 @@ $root.MobileCheckInScan = (function() {
53112
53154
  object.scannedAt = message.scannedAt;
53113
53155
  if (message.startsAt != null && message.hasOwnProperty("startsAt"))
53114
53156
  object.startsAt = message.startsAt;
53157
+ if (message.endsAt != null && message.hasOwnProperty("endsAt"))
53158
+ object.endsAt = message.endsAt;
53115
53159
  return object;
53116
53160
  };
53117
53161
 
@@ -105167,6 +105211,7 @@ $root.Event = (function() {
105167
105211
  * @property {Array.<string>|null} [additionalPhotos] Event additionalPhotos
105168
105212
  * @property {Array.<string>|null} [tagIds] Event tagIds
105169
105213
  * @property {Array.<IGuestListEntry>|null} [guestList] Event guestList
105214
+ * @property {string|null} [multiDayEntry] Event multiDayEntry
105170
105215
  */
105171
105216
 
105172
105217
  /**
@@ -105595,6 +105640,14 @@ $root.Event = (function() {
105595
105640
  */
105596
105641
  Event.prototype.guestList = $util.emptyArray;
105597
105642
 
105643
+ /**
105644
+ * Event multiDayEntry.
105645
+ * @member {string} multiDayEntry
105646
+ * @memberof Event
105647
+ * @instance
105648
+ */
105649
+ Event.prototype.multiDayEntry = "";
105650
+
105598
105651
  /**
105599
105652
  * Creates a new Event instance using the specified properties.
105600
105653
  * @function create
@@ -105730,6 +105783,8 @@ $root.Event = (function() {
105730
105783
  if (message.guestList != null && message.guestList.length)
105731
105784
  for (var i = 0; i < message.guestList.length; ++i)
105732
105785
  $root.GuestListEntry.encode(message.guestList[i], writer.uint32(/* id 50, wireType 2 =*/402).fork()).ldelim();
105786
+ if (message.multiDayEntry != null && Object.hasOwnProperty.call(message, "multiDayEntry"))
105787
+ writer.uint32(/* id 51, wireType 2 =*/410).string(message.multiDayEntry);
105733
105788
  return writer;
105734
105789
  };
105735
105790
 
@@ -105936,6 +105991,9 @@ $root.Event = (function() {
105936
105991
  message.guestList = [];
105937
105992
  message.guestList.push($root.GuestListEntry.decode(reader, reader.uint32()));
105938
105993
  break;
105994
+ case 51:
105995
+ message.multiDayEntry = reader.string();
105996
+ break;
105939
105997
  default:
105940
105998
  reader.skipType(tag & 7);
105941
105999
  break;
@@ -106193,6 +106251,9 @@ $root.Event = (function() {
106193
106251
  return "guestList." + error;
106194
106252
  }
106195
106253
  }
106254
+ if (message.multiDayEntry != null && message.hasOwnProperty("multiDayEntry"))
106255
+ if (!$util.isString(message.multiDayEntry))
106256
+ return "multiDayEntry: string expected";
106196
106257
  return null;
106197
106258
  };
106198
106259
 
@@ -106405,6 +106466,8 @@ $root.Event = (function() {
106405
106466
  message.guestList[i] = $root.GuestListEntry.fromObject(object.guestList[i]);
106406
106467
  }
106407
106468
  }
106469
+ if (object.multiDayEntry != null)
106470
+ message.multiDayEntry = String(object.multiDayEntry);
106408
106471
  return message;
106409
106472
  };
106410
106473
 
@@ -106474,6 +106537,7 @@ $root.Event = (function() {
106474
106537
  object.web3Hash = "";
106475
106538
  object.googleWalletClassId = "";
106476
106539
  object.isEventTegIntegration = false;
106540
+ object.multiDayEntry = "";
106477
106541
  }
106478
106542
  if (message._id != null && message.hasOwnProperty("_id"))
106479
106543
  object._id = message._id;
@@ -106608,6 +106672,8 @@ $root.Event = (function() {
106608
106672
  for (var j = 0; j < message.guestList.length; ++j)
106609
106673
  object.guestList[j] = $root.GuestListEntry.toObject(message.guestList[j], options);
106610
106674
  }
106675
+ if (message.multiDayEntry != null && message.hasOwnProperty("multiDayEntry"))
106676
+ object.multiDayEntry = message.multiDayEntry;
106611
106677
  return object;
106612
106678
  };
106613
106679
 
@@ -107934,6 +108000,7 @@ $root.PublicEventDetails = (function() {
107934
108000
  * @property {Array.<IPublicTicketType>|null} [ticketTypes] PublicEventDetails ticketTypes
107935
108001
  * @property {boolean|null} [isMultipleDays] PublicEventDetails isMultipleDays
107936
108002
  * @property {Array.<string>|null} [additionalPhotos] PublicEventDetails additionalPhotos
108003
+ * @property {Array.<ITag>|null} [tags] PublicEventDetails tags
107937
108004
  */
107938
108005
 
107939
108006
  /**
@@ -107948,6 +108015,7 @@ $root.PublicEventDetails = (function() {
107948
108015
  this.performances = [];
107949
108016
  this.ticketTypes = [];
107950
108017
  this.additionalPhotos = [];
108018
+ this.tags = [];
107951
108019
  if (properties)
107952
108020
  for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
107953
108021
  if (properties[keys[i]] != null)
@@ -108218,6 +108286,14 @@ $root.PublicEventDetails = (function() {
108218
108286
  */
108219
108287
  PublicEventDetails.prototype.additionalPhotos = $util.emptyArray;
108220
108288
 
108289
+ /**
108290
+ * PublicEventDetails tags.
108291
+ * @member {Array.<ITag>} tags
108292
+ * @memberof PublicEventDetails
108293
+ * @instance
108294
+ */
108295
+ PublicEventDetails.prototype.tags = $util.emptyArray;
108296
+
108221
108297
  /**
108222
108298
  * Creates a new PublicEventDetails instance using the specified properties.
108223
108299
  * @function create
@@ -108311,6 +108387,9 @@ $root.PublicEventDetails = (function() {
108311
108387
  if (message.additionalPhotos != null && message.additionalPhotos.length)
108312
108388
  for (var i = 0; i < message.additionalPhotos.length; ++i)
108313
108389
  writer.uint32(/* id 33, wireType 2 =*/266).string(message.additionalPhotos[i]);
108390
+ if (message.tags != null && message.tags.length)
108391
+ for (var i = 0; i < message.tags.length; ++i)
108392
+ $root.Tag.encode(message.tags[i], writer.uint32(/* id 34, wireType 2 =*/274).fork()).ldelim();
108314
108393
  return writer;
108315
108394
  };
108316
108395
 
@@ -108450,6 +108529,11 @@ $root.PublicEventDetails = (function() {
108450
108529
  message.additionalPhotos = [];
108451
108530
  message.additionalPhotos.push(reader.string());
108452
108531
  break;
108532
+ case 34:
108533
+ if (!(message.tags && message.tags.length))
108534
+ message.tags = [];
108535
+ message.tags.push($root.Tag.decode(reader, reader.uint32()));
108536
+ break;
108453
108537
  default:
108454
108538
  reader.skipType(tag & 7);
108455
108539
  break;
@@ -108610,6 +108694,15 @@ $root.PublicEventDetails = (function() {
108610
108694
  if (!$util.isString(message.additionalPhotos[i]))
108611
108695
  return "additionalPhotos: string[] expected";
108612
108696
  }
108697
+ if (message.tags != null && message.hasOwnProperty("tags")) {
108698
+ if (!Array.isArray(message.tags))
108699
+ return "tags: array expected";
108700
+ for (var i = 0; i < message.tags.length; ++i) {
108701
+ var error = $root.Tag.verify(message.tags[i]);
108702
+ if (error)
108703
+ return "tags." + error;
108704
+ }
108705
+ }
108613
108706
  return null;
108614
108707
  };
108615
108708
 
@@ -108727,6 +108820,16 @@ $root.PublicEventDetails = (function() {
108727
108820
  for (var i = 0; i < object.additionalPhotos.length; ++i)
108728
108821
  message.additionalPhotos[i] = String(object.additionalPhotos[i]);
108729
108822
  }
108823
+ if (object.tags) {
108824
+ if (!Array.isArray(object.tags))
108825
+ throw TypeError(".PublicEventDetails.tags: array expected");
108826
+ message.tags = [];
108827
+ for (var i = 0; i < object.tags.length; ++i) {
108828
+ if (typeof object.tags[i] !== "object")
108829
+ throw TypeError(".PublicEventDetails.tags: object expected");
108830
+ message.tags[i] = $root.Tag.fromObject(object.tags[i]);
108831
+ }
108832
+ }
108730
108833
  return message;
108731
108834
  };
108732
108835
 
@@ -108747,6 +108850,7 @@ $root.PublicEventDetails = (function() {
108747
108850
  object.performances = [];
108748
108851
  object.ticketTypes = [];
108749
108852
  object.additionalPhotos = [];
108853
+ object.tags = [];
108750
108854
  }
108751
108855
  if (options.defaults) {
108752
108856
  object._id = "";
@@ -108855,6 +108959,11 @@ $root.PublicEventDetails = (function() {
108855
108959
  for (var j = 0; j < message.additionalPhotos.length; ++j)
108856
108960
  object.additionalPhotos[j] = message.additionalPhotos[j];
108857
108961
  }
108962
+ if (message.tags && message.tags.length) {
108963
+ object.tags = [];
108964
+ for (var j = 0; j < message.tags.length; ++j)
108965
+ object.tags[j] = $root.Tag.toObject(message.tags[j], options);
108966
+ }
108858
108967
  return object;
108859
108968
  };
108860
108969
 
@@ -141729,6 +141838,8 @@ $root.MobileCheckInEvent = (function() {
141729
141838
  * @property {string|null} [userAgreement] MobileCheckInEvent userAgreement
141730
141839
  * @property {Array.<IEventCustomFields>|null} [customFields] MobileCheckInEvent customFields
141731
141840
  * @property {Array.<IMobileCheckInGuestListEntry>|null} [guestList] MobileCheckInEvent guestList
141841
+ * @property {boolean|null} [isMultipleDays] MobileCheckInEvent isMultipleDays
141842
+ * @property {string|null} [multiDayEntry] MobileCheckInEvent multiDayEntry
141732
141843
  */
141733
141844
 
141734
141845
  /**
@@ -141839,6 +141950,22 @@ $root.MobileCheckInEvent = (function() {
141839
141950
  */
141840
141951
  MobileCheckInEvent.prototype.guestList = $util.emptyArray;
141841
141952
 
141953
+ /**
141954
+ * MobileCheckInEvent isMultipleDays.
141955
+ * @member {boolean} isMultipleDays
141956
+ * @memberof MobileCheckInEvent
141957
+ * @instance
141958
+ */
141959
+ MobileCheckInEvent.prototype.isMultipleDays = false;
141960
+
141961
+ /**
141962
+ * MobileCheckInEvent multiDayEntry.
141963
+ * @member {string} multiDayEntry
141964
+ * @memberof MobileCheckInEvent
141965
+ * @instance
141966
+ */
141967
+ MobileCheckInEvent.prototype.multiDayEntry = "";
141968
+
141842
141969
  /**
141843
141970
  * Creates a new MobileCheckInEvent instance using the specified properties.
141844
141971
  * @function create
@@ -141890,6 +142017,10 @@ $root.MobileCheckInEvent = (function() {
141890
142017
  if (message.guestList != null && message.guestList.length)
141891
142018
  for (var i = 0; i < message.guestList.length; ++i)
141892
142019
  $root.MobileCheckInGuestListEntry.encode(message.guestList[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();
142020
+ if (message.isMultipleDays != null && Object.hasOwnProperty.call(message, "isMultipleDays"))
142021
+ writer.uint32(/* id 12, wireType 0 =*/96).bool(message.isMultipleDays);
142022
+ if (message.multiDayEntry != null && Object.hasOwnProperty.call(message, "multiDayEntry"))
142023
+ writer.uint32(/* id 13, wireType 2 =*/106).string(message.multiDayEntry);
141893
142024
  return writer;
141894
142025
  };
141895
142026
 
@@ -141967,6 +142098,12 @@ $root.MobileCheckInEvent = (function() {
141967
142098
  message.guestList = [];
141968
142099
  message.guestList.push($root.MobileCheckInGuestListEntry.decode(reader, reader.uint32()));
141969
142100
  break;
142101
+ case 12:
142102
+ message.isMultipleDays = reader.bool();
142103
+ break;
142104
+ case 13:
142105
+ message.multiDayEntry = reader.string();
142106
+ break;
141970
142107
  default:
141971
142108
  reader.skipType(tag & 7);
141972
142109
  break;
@@ -142069,6 +142206,12 @@ $root.MobileCheckInEvent = (function() {
142069
142206
  return "guestList." + error;
142070
142207
  }
142071
142208
  }
142209
+ if (message.isMultipleDays != null && message.hasOwnProperty("isMultipleDays"))
142210
+ if (typeof message.isMultipleDays !== "boolean")
142211
+ return "isMultipleDays: boolean expected";
142212
+ if (message.multiDayEntry != null && message.hasOwnProperty("multiDayEntry"))
142213
+ if (!$util.isString(message.multiDayEntry))
142214
+ return "multiDayEntry: string expected";
142072
142215
  return null;
142073
142216
  };
142074
142217
 
@@ -142152,6 +142295,10 @@ $root.MobileCheckInEvent = (function() {
142152
142295
  message.guestList[i] = $root.MobileCheckInGuestListEntry.fromObject(object.guestList[i]);
142153
142296
  }
142154
142297
  }
142298
+ if (object.isMultipleDays != null)
142299
+ message.isMultipleDays = Boolean(object.isMultipleDays);
142300
+ if (object.multiDayEntry != null)
142301
+ message.multiDayEntry = String(object.multiDayEntry);
142155
142302
  return message;
142156
142303
  };
142157
142304
 
@@ -142182,6 +142329,8 @@ $root.MobileCheckInEvent = (function() {
142182
142329
  object.schedule = null;
142183
142330
  object.venue = null;
142184
142331
  object.userAgreement = "";
142332
+ object.isMultipleDays = false;
142333
+ object.multiDayEntry = "";
142185
142334
  }
142186
142335
  if (message._id != null && message.hasOwnProperty("_id"))
142187
142336
  object._id = message._id;
@@ -142220,6 +142369,10 @@ $root.MobileCheckInEvent = (function() {
142220
142369
  for (var j = 0; j < message.guestList.length; ++j)
142221
142370
  object.guestList[j] = $root.MobileCheckInGuestListEntry.toObject(message.guestList[j], options);
142222
142371
  }
142372
+ if (message.isMultipleDays != null && message.hasOwnProperty("isMultipleDays"))
142373
+ object.isMultipleDays = message.isMultipleDays;
142374
+ if (message.multiDayEntry != null && message.hasOwnProperty("multiDayEntry"))
142375
+ object.multiDayEntry = message.multiDayEntry;
142223
142376
  return object;
142224
142377
  };
142225
142378
 
@@ -10,6 +10,7 @@ import ITicketHold from "../interfaces/ITicketHold";
10
10
  import IGuestListEntry from "../interfaces/IGuestListEntry";
11
11
  import IGuestListSession from "../interfaces/IGuestListSession";
12
12
  import IEmailHolders from "../interfaces/IEmailHolders";
13
+ import IScan from "../interfaces/IScan";
13
14
  declare const _default: {
14
15
  /****************************************************************************************
15
16
  * Schedule
@@ -57,6 +58,17 @@ declare const _default: {
57
58
  ****************************************************************************************/
58
59
  plainGuestEntry(value: any): any;
59
60
  guestListSessions(event: IEvent): IGuestListSession[];
61
+ eventSession(event: IEvent): IGuestListSession | null;
62
+ eventCheckInOpensAt(event: IEvent): number | null;
63
+ scheduleSessions(event: IEvent): IGuestListSession[];
64
+ /****************************************************************************************
65
+ * Multi-day Entry
66
+ ****************************************************************************************/
67
+ isSingleEntry(event: IEvent): boolean;
68
+ ticketScans(event: IEvent, dayIds?: string[]): IScan[];
69
+ entryDays(event: IEvent, dayIds?: string[]): string[];
70
+ scanIsValidOn(scan: IScan, at: number, timezone: string): boolean;
71
+ scanIsClosed(scan: IScan, at: number): boolean;
60
72
  GUEST_LIST_MAX_GROUP_SIZE: number;
61
73
  guestListHighestNumber(guestList: IGuestListEntry[], firstName: string, lastName: string): number;
62
74
  guestListRenumberOnDelete(guestList: IGuestListEntry[], guestListEntryId: string): {
@@ -238,6 +238,39 @@ exports.default = {
238
238
  : value;
239
239
  },
240
240
  guestListSessions(event) {
241
+ const sessions = this.scheduleSessions(event);
242
+ if (!this.isSingleEntry(event) || sessions.length < 2)
243
+ return sessions;
244
+ // Single entry: one check-in covers the whole event, the same as tickets,
245
+ // so the guest is checked in once and stays checked in for the rest.
246
+ return [this.eventSession(event)];
247
+ },
248
+ // The whole event as one session: the first day's start to the latest end.
249
+ eventSession(event) {
250
+ const sessions = this.scheduleSessions(event);
251
+ if (!sessions.length)
252
+ return null;
253
+ const endsAt = sessions
254
+ .map((session) => session.endsAt)
255
+ .filter((value) => Boolean(value));
256
+ return {
257
+ startsAt: sessions[0].startsAt,
258
+ endsAt: endsAt.length ? Math.max(...endsAt) : null,
259
+ };
260
+ },
261
+ // When single-entry check-in opens: doors on the first day, or the first
262
+ // start time when no doors time is set.
263
+ eventCheckInOpensAt(event) {
264
+ var _a, _b, _c;
265
+ const session = this.eventSession(event);
266
+ if (!session)
267
+ return null;
268
+ const doorsAt = ((_c = (_b = (_a = event === null || event === void 0 ? void 0 : event.performances) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.schedule) !== null && _c !== void 0 ? _c : [])
269
+ .filter((day) => (day === null || day === void 0 ? void 0 : day.startsAt) === session.startsAt && (day === null || day === void 0 ? void 0 : day.doorsAt))
270
+ .map((day) => day.doorsAt);
271
+ return Math.min(session.startsAt, ...doorsAt);
272
+ },
273
+ scheduleSessions(event) {
241
274
  var _a, _b, _c, _d, _e, _f;
242
275
  const scheduled = ((_c = (_b = (_a = event === null || event === void 0 ? void 0 : event.performances) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.schedule) !== null && _c !== void 0 ? _c : [])
243
276
  .filter((day) => Boolean(day === null || day === void 0 ? void 0 : day.startsAt))
@@ -274,6 +307,52 @@ exports.default = {
274
307
  ]
275
308
  : [];
276
309
  },
310
+ /****************************************************************************************
311
+ * Multi-day Entry
312
+ ****************************************************************************************/
313
+ isSingleEntry(event) {
314
+ return (Boolean(event === null || event === void 0 ? void 0 : event.isMultipleDays) &&
315
+ (event === null || event === void 0 ? void 0 : event.multiDayEntry) === IEvent_1.MultiDayEntryEnum.Single);
316
+ },
317
+ // Daily: one scan per day the ticket is valid for. Single: one scan for the
318
+ // whole event, whatever days the ticket covers. The client treats it as a
319
+ // registration-desk check-in, open from the first day to the last.
320
+ ticketScans(event, dayIds = []) {
321
+ var _a, _b, _c, _d, _e, _f;
322
+ const unscanned = { scanned: false, scannedAt: 0, scannedBy: "" };
323
+ if (!this.isSingleEntry(event)) {
324
+ if (!(dayIds === null || dayIds === void 0 ? void 0 : dayIds.length)) {
325
+ return [Object.assign(Object.assign({}, unscanned), { startsAt: (_a = event === null || event === void 0 ? void 0 : event.schedule) === null || _a === void 0 ? void 0 : _a.startsAt })];
326
+ }
327
+ return dayIds.map((day) => (Object.assign(Object.assign({}, unscanned), { startsAt: parseInt(day) })));
328
+ }
329
+ const session = this.eventSession(event);
330
+ return [
331
+ Object.assign(Object.assign({}, unscanned), { startsAt: (_b = this.eventCheckInOpensAt(event)) !== null && _b !== void 0 ? _b : (_c = event === null || event === void 0 ? void 0 : event.schedule) === null || _c === void 0 ? void 0 : _c.startsAt, endsAt: (_f = (_d = session === null || session === void 0 ? void 0 : session.endsAt) !== null && _d !== void 0 ? _d : (_e = event === null || event === void 0 ? void 0 : event.schedule) === null || _e === void 0 ? void 0 : _e.endsAt) !== null && _f !== void 0 ? _f : undefined }),
332
+ ];
333
+ },
334
+ // The days a ticket gets its own entry for (day-of reminder, printed ticket):
335
+ // every day for Daily, only the event's first day for Single.
336
+ entryDays(event, dayIds = []) {
337
+ if (!this.isSingleEntry(event) || !(dayIds === null || dayIds === void 0 ? void 0 : dayIds.length))
338
+ return dayIds !== null && dayIds !== void 0 ? dayIds : [];
339
+ const session = this.eventSession(event);
340
+ return session ? [String(session.startsAt)] : dayIds.slice(0, 1);
341
+ },
342
+ // A daily scan is valid on its own calendar day. A single-entry scan is valid
343
+ // from doors on the first day (its startsAt) to the end of the last day.
344
+ scanIsValidOn(scan, at, timezone) {
345
+ if (!(scan === null || scan === void 0 ? void 0 : scan.startsAt))
346
+ return false;
347
+ if (scan.endsAt)
348
+ return scan.startsAt <= at && at <= scan.endsAt;
349
+ const day = (seconds) => Time.format(seconds, "YYYY-MM-DD", timezone);
350
+ return day(scan.startsAt) === day(at);
351
+ },
352
+ // A single-entry scan that was never used and whose window is over.
353
+ scanIsClosed(scan, at) {
354
+ return Boolean(scan === null || scan === void 0 ? void 0 : scan.endsAt) && at > scan.endsAt;
355
+ },
277
356
  GUEST_LIST_MAX_GROUP_SIZE: 100,
278
357
  guestListHighestNumber(guestList, firstName, lastName) {
279
358
  const normalize = (value) => (value !== null && value !== void 0 ? value : "").trim().toLowerCase();
@@ -350,6 +429,15 @@ exports.default = {
350
429
  });
351
430
  },
352
431
  currentGuestListDay(event, timezone, at = Time.now()) {
432
+ // Single entry: guests check in from doors on the first day to the end of
433
+ // the last day, the same window as tickets.
434
+ if (this.isSingleEntry(event)) {
435
+ const session = this.eventSession(event);
436
+ const opensAt = this.eventCheckInOpensAt(event);
437
+ if ((session === null || session === void 0 ? void 0 : session.endsAt) && opensAt !== null) {
438
+ return opensAt <= at && at <= session.endsAt ? session.startsAt : null;
439
+ }
440
+ }
353
441
  const day = (seconds) => Time.format(seconds, "YYYY-MM-DD", timezone);
354
442
  const today = day(at);
355
443
  const sessions = this.guestListSessions(event);