@sellout/models 0.0.148 → 0.0.150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dist/graphql/fragments/event.fragment.js +2 -0
- package/.dist/graphql/fragments/event.fragment.js.map +1 -1
- package/.dist/graphql/fragments/order.fragment.js +2 -0
- package/.dist/graphql/fragments/order.fragment.js.map +1 -1
- package/.dist/graphql/mutations/breakApartOrder.js +1 -0
- package/.dist/graphql/mutations/breakApartOrder.js.map +1 -1
- package/.dist/graphql/mutations/createEvent.mutation.js +2 -0
- package/.dist/graphql/mutations/createEvent.mutation.js.map +1 -1
- package/.dist/graphql/mutations/publishEvent.mutation.js +2 -0
- package/.dist/graphql/mutations/publishEvent.mutation.js.map +1 -1
- package/.dist/graphql/mutations/sendUserPhoneAuthentication.mutation.js +2 -2
- package/.dist/graphql/mutations/updateEvent.mutation.js +2 -0
- package/.dist/graphql/mutations/updateEvent.mutation.js.map +1 -1
- package/.dist/graphql/queries/event.query.js +2 -0
- package/.dist/graphql/queries/event.query.js.map +1 -1
- package/.dist/graphql/queries/events.query.js +2 -0
- package/.dist/graphql/queries/events.query.js.map +1 -1
- package/.dist/graphql/queries/order.query.js +2 -0
- package/.dist/graphql/queries/order.query.js.map +1 -1
- package/.dist/graphql/queries/orders.query.js +1 -0
- package/.dist/graphql/queries/orders.query.js.map +1 -1
- package/.dist/graphql/queries/promoCodeVerify.query.js +1 -0
- package/.dist/graphql/queries/promoCodeVerify.query.js.map +1 -1
- package/.dist/graphql/queries/publicEvent.query.js +2 -0
- package/.dist/graphql/queries/publicEvent.query.js.map +1 -1
- package/.dist/interfaces/ICreateOrderParams.d.ts +3 -0
- package/.dist/interfaces/IEvent.d.ts +2 -0
- package/.dist/interfaces/IEvent.js.map +1 -1
- package/.dist/interfaces/IOrderSummary.d.ts +1 -0
- package/.dist/interfaces/IOrderTicket.d.ts +2 -1
- package/.dist/interfaces/IOrderTicket.js.map +1 -1
- package/.dist/interfaces/IPerformance.d.ts +2 -1
- package/.dist/interfaces/IScan.d.ts +1 -0
- package/.dist/interfaces/ITicketType.d.ts +3 -0
- package/.dist/schemas/Event.d.ts +33 -2
- package/.dist/schemas/Event.js +33 -11
- package/.dist/schemas/Event.js.map +1 -1
- package/.dist/schemas/Order.d.ts +15 -1
- package/.dist/schemas/Order.js +12 -3
- package/.dist/schemas/Order.js.map +1 -1
- package/.dist/sellout-proto.js +957 -36
- package/.dist/utils/EventUtil.d.ts +2 -1
- package/.dist/utils/EventUtil.js +87 -7
- package/.dist/utils/EventUtil.js.map +1 -1
- package/.dist/utils/OrderUtil.js +3 -1
- package/.dist/utils/OrderUtil.js.map +1 -1
- package/package.json +3 -3
- package/src/graphql/fragments/event.fragment.ts +2 -0
- package/src/graphql/fragments/order.fragment.ts +2 -0
- package/src/graphql/mutations/breakApartOrder.ts +1 -0
- package/src/graphql/mutations/createEvent.mutation.ts +2 -0
- package/src/graphql/mutations/publishEvent.mutation.ts +2 -0
- package/src/graphql/mutations/sendUserPhoneAuthentication.mutation.ts +2 -2
- package/src/graphql/mutations/updateEvent.mutation.ts +2 -0
- package/src/graphql/queries/event.query.ts +2 -0
- package/src/graphql/queries/events.query.ts +2 -0
- package/src/graphql/queries/order.query.ts +2 -0
- package/src/graphql/queries/orders.query.ts +1 -0
- package/src/graphql/queries/promoCodeVerify.query.ts +1 -0
- package/src/graphql/queries/publicEvent.query.ts +2 -0
- package/src/interfaces/ICreateOrderParams.ts +4 -0
- package/src/interfaces/IEvent.ts +4 -2
- package/src/interfaces/IOrderSummary.ts +1 -0
- package/src/interfaces/IOrderTicket.ts +2 -1
- package/src/interfaces/IPerformance.ts +2 -1
- package/src/interfaces/IScan.ts +1 -0
- package/src/interfaces/ITicketType.ts +4 -1
- package/src/proto/email.proto +21 -0
- package/src/proto/event.proto +5 -1
- package/src/proto/order.proto +4 -1
- package/src/proto/user.proto +1 -0
- package/src/schemas/Event.ts +25 -3
- package/src/schemas/Order.ts +12 -3
- package/src/utils/EventUtil.ts +113 -23
- package/src/utils/OrderUtil.ts +96 -94
package/src/proto/email.proto
CHANGED
|
@@ -50,12 +50,14 @@ message OrderSummaryItem {
|
|
|
50
50
|
string seats = 3;
|
|
51
51
|
string description = 4;
|
|
52
52
|
string type = 5;
|
|
53
|
+
string days = 6;
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
message OrderRefundItem {
|
|
56
57
|
string name = 0;
|
|
57
58
|
string refundedAmount = 1;
|
|
58
59
|
string description = 2;
|
|
60
|
+
string days = 3;
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
message orderSheetEmailRequest {
|
|
@@ -63,6 +65,11 @@ message orderSheetEmailRequest {
|
|
|
63
65
|
string orgName = 1;
|
|
64
66
|
string url = 2;
|
|
65
67
|
}
|
|
68
|
+
message dayIdsTimeObj {
|
|
69
|
+
int32 startsAt = 0;
|
|
70
|
+
int32 endsAt = 1;
|
|
71
|
+
int32 doorsAt = 2;
|
|
72
|
+
}
|
|
66
73
|
|
|
67
74
|
message QueueOrderReceiptEmailRequest {
|
|
68
75
|
string spanContext = 0;
|
|
@@ -96,6 +103,9 @@ message QueueOrderReceiptEmailRequest {
|
|
|
96
103
|
int32 eventStart = 29;
|
|
97
104
|
int32 eventEnd = 30;
|
|
98
105
|
string timezone = 31;
|
|
106
|
+
repeated string dayIds = 32;
|
|
107
|
+
repeated dayIdsTimeObj dayIdsTime = 33;
|
|
108
|
+
repeated dayIdsTimeObj dayIdsTimeCalendar = 34;
|
|
99
109
|
}
|
|
100
110
|
|
|
101
111
|
message QueueOrderQRCodeEmailRequest {
|
|
@@ -131,6 +141,9 @@ message QueueOrderQRCodeEmailRequest {
|
|
|
131
141
|
int32 eventStart = 29;
|
|
132
142
|
int32 eventEnd = 30;
|
|
133
143
|
string timezone = 31;
|
|
144
|
+
repeated dayIdsTimeObj dayIdsTime = 32;
|
|
145
|
+
repeated dayIdsTimeObj dayIdsTimeCalendar = 34;
|
|
146
|
+
|
|
134
147
|
}
|
|
135
148
|
|
|
136
149
|
message QueueOrderRefundEmailRequest {
|
|
@@ -162,6 +175,10 @@ message QueueOrderRefundEmailRequest {
|
|
|
162
175
|
string orderFeesRefunded = 25;
|
|
163
176
|
string orderTotalRefunded = 26;
|
|
164
177
|
string refundReason = 27;
|
|
178
|
+
repeated dayIdsTimeObj dayIdsTime = 28;
|
|
179
|
+
repeated dayIdsTimeObj dayIdsTimeCalendar = 29;
|
|
180
|
+
|
|
181
|
+
|
|
165
182
|
}
|
|
166
183
|
|
|
167
184
|
message QueueOrderCanceledEmailRequest {
|
|
@@ -193,6 +210,10 @@ message QueueOrderCanceledEmailRequest {
|
|
|
193
210
|
string orderFeesRefunded = 25;
|
|
194
211
|
string orderTotalRefunded = 26;
|
|
195
212
|
string refundReason = 27;
|
|
213
|
+
repeated dayIdsTimeObj dayIdsTime = 28;
|
|
214
|
+
repeated dayIdsTimeObj dayIdsTimeCalendar = 29;
|
|
215
|
+
|
|
216
|
+
|
|
196
217
|
}
|
|
197
218
|
|
|
198
219
|
service EmailService {
|
package/src/proto/event.proto
CHANGED
|
@@ -36,6 +36,8 @@ message Event {
|
|
|
36
36
|
bool salesBeginImmediately = 28;
|
|
37
37
|
bool cancel = 29;
|
|
38
38
|
bool taxDeduction = 30;
|
|
39
|
+
bool isMultipleDays = 31;
|
|
40
|
+
string totalDays = 32;
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
message PublicEvent {
|
|
@@ -109,6 +111,7 @@ message EventSchedule {
|
|
|
109
111
|
message PerformanceSchedule {
|
|
110
112
|
int32 doorsAt = 1;
|
|
111
113
|
int32 startsAt = 2;
|
|
114
|
+
int32 endsAt = 3;
|
|
112
115
|
}
|
|
113
116
|
|
|
114
117
|
message Performance {
|
|
@@ -121,7 +124,7 @@ message Performance {
|
|
|
121
124
|
string posterImageUrl = 7;
|
|
122
125
|
string videoLink = 8;
|
|
123
126
|
string songLink = 9;
|
|
124
|
-
PerformanceSchedule schedule = 10;
|
|
127
|
+
repeated PerformanceSchedule schedule = 10;
|
|
125
128
|
}
|
|
126
129
|
|
|
127
130
|
message TicketType {
|
|
@@ -137,6 +140,7 @@ message TicketType {
|
|
|
137
140
|
bool rollFees = 10;
|
|
138
141
|
string promo = 11;
|
|
139
142
|
string values = 12;
|
|
143
|
+
repeated string dayIds = 13;
|
|
140
144
|
}
|
|
141
145
|
|
|
142
146
|
message TicketTier {
|
package/src/proto/order.proto
CHANGED
|
@@ -52,11 +52,12 @@ message OrderTicket {
|
|
|
52
52
|
string paymentId = 6;
|
|
53
53
|
string seat = 7;
|
|
54
54
|
Refund refund = 8;
|
|
55
|
-
Scan scan = 9;
|
|
55
|
+
repeated Scan scan = 9;
|
|
56
56
|
string state = 10;
|
|
57
57
|
string qrCodeUrl = 11;
|
|
58
58
|
string values=12;
|
|
59
59
|
string description = 13;
|
|
60
|
+
repeated string dayIds = 14;
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
message OrderUpgrade {
|
|
@@ -78,6 +79,7 @@ message Scan {
|
|
|
78
79
|
bool scanned = 0;
|
|
79
80
|
int32 scannedAt = 1;
|
|
80
81
|
string scannedBy = 2;
|
|
82
|
+
int32 startsAt = 3;
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
message Refund {
|
|
@@ -140,6 +142,7 @@ message CreateOrderTicketParams {
|
|
|
140
142
|
string values = 6;
|
|
141
143
|
string description = 7;
|
|
142
144
|
string type = 8;
|
|
145
|
+
repeated string dayIds = 9;
|
|
143
146
|
|
|
144
147
|
}
|
|
145
148
|
|
package/src/proto/user.proto
CHANGED
package/src/schemas/Event.ts
CHANGED
|
@@ -228,7 +228,12 @@ const EventUpgrade = {
|
|
|
228
228
|
},
|
|
229
229
|
};
|
|
230
230
|
|
|
231
|
-
export const PerformanceSchedule = {
|
|
231
|
+
export const PerformanceSchedule = [{
|
|
232
|
+
_id: {
|
|
233
|
+
type: String,
|
|
234
|
+
required: false,
|
|
235
|
+
default: shortid.generate,
|
|
236
|
+
},
|
|
232
237
|
doorsAt: {
|
|
233
238
|
type: Number,
|
|
234
239
|
required: false,
|
|
@@ -237,7 +242,11 @@ export const PerformanceSchedule = {
|
|
|
237
242
|
type: Number,
|
|
238
243
|
required: false,
|
|
239
244
|
},
|
|
240
|
-
|
|
245
|
+
endsAt: {
|
|
246
|
+
type: Number,
|
|
247
|
+
required: false,
|
|
248
|
+
},
|
|
249
|
+
}];
|
|
241
250
|
|
|
242
251
|
const Performance = {
|
|
243
252
|
_id: {
|
|
@@ -397,7 +406,12 @@ const TicketType = {
|
|
|
397
406
|
type: String,
|
|
398
407
|
required: false,
|
|
399
408
|
default: "0",
|
|
400
|
-
},
|
|
409
|
+
},dayIds: [
|
|
410
|
+
{
|
|
411
|
+
type: String,
|
|
412
|
+
required: false
|
|
413
|
+
}
|
|
414
|
+
]
|
|
401
415
|
};
|
|
402
416
|
|
|
403
417
|
|
|
@@ -447,10 +461,18 @@ export default {
|
|
|
447
461
|
type: String,
|
|
448
462
|
required: false,
|
|
449
463
|
},
|
|
464
|
+
isMultipleDays: {
|
|
465
|
+
type: Boolean,
|
|
466
|
+
required: true,
|
|
467
|
+
default: false
|
|
468
|
+
},
|
|
450
469
|
age: {
|
|
451
470
|
type: String,
|
|
452
471
|
required: true,
|
|
453
472
|
default: EventAgeEnum.AllAges
|
|
473
|
+
}, totalDays: {
|
|
474
|
+
type: String,
|
|
475
|
+
required: true,
|
|
454
476
|
},
|
|
455
477
|
active: {
|
|
456
478
|
type: Boolean,
|
package/src/schemas/Order.ts
CHANGED
|
@@ -27,6 +27,7 @@ const Refund = {
|
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
const Scan = {
|
|
30
|
+
_id: false,
|
|
30
31
|
scanned: {
|
|
31
32
|
type: Boolean,
|
|
32
33
|
required: true,
|
|
@@ -40,7 +41,10 @@ const Scan = {
|
|
|
40
41
|
type: String,
|
|
41
42
|
required: false,
|
|
42
43
|
default: '',
|
|
43
|
-
},
|
|
44
|
+
},startsAt:{
|
|
45
|
+
type: Number,
|
|
46
|
+
required: false,
|
|
47
|
+
}
|
|
44
48
|
};
|
|
45
49
|
|
|
46
50
|
const OrderTicket = {
|
|
@@ -80,7 +84,7 @@ const OrderTicket = {
|
|
|
80
84
|
required: false,
|
|
81
85
|
default: '',
|
|
82
86
|
},
|
|
83
|
-
scan: Scan,
|
|
87
|
+
scan: [Scan],
|
|
84
88
|
refund: Refund,
|
|
85
89
|
state: {
|
|
86
90
|
type: String,
|
|
@@ -97,7 +101,12 @@ const OrderTicket = {
|
|
|
97
101
|
},description:{
|
|
98
102
|
type: String,
|
|
99
103
|
required: false
|
|
100
|
-
}
|
|
104
|
+
},dayIds:[
|
|
105
|
+
{
|
|
106
|
+
type: String,
|
|
107
|
+
required: false
|
|
108
|
+
}
|
|
109
|
+
]
|
|
101
110
|
};
|
|
102
111
|
|
|
103
112
|
const OrderUpgrade = {
|
package/src/utils/EventUtil.ts
CHANGED
|
@@ -13,7 +13,9 @@ import ITicketType from "../interfaces/ITicketType";
|
|
|
13
13
|
import IEventPromotion from "../interfaces/IEventPromotion";
|
|
14
14
|
import { EventPromotionTypeEnum } from "../interfaces/IEventPromotion";
|
|
15
15
|
import { DropDownEnum } from "../enums/DropDownEnum";
|
|
16
|
-
import { SendQRCodeEnum} from "../interfaces/IEvent";
|
|
16
|
+
import { SendQRCodeEnum } from "../interfaces/IEvent";
|
|
17
|
+
import IEventSchedule from "src/interfaces/IEventSchedule";
|
|
18
|
+
|
|
17
19
|
export default {
|
|
18
20
|
/****************************************************************************************
|
|
19
21
|
* Schedule
|
|
@@ -58,10 +60,10 @@ export default {
|
|
|
58
60
|
},
|
|
59
61
|
hasEnded(event): boolean {
|
|
60
62
|
const {
|
|
61
|
-
schedule: { endsAt }
|
|
63
|
+
schedule: { endsAt },
|
|
62
64
|
} = event;
|
|
63
65
|
const now = Time.now();
|
|
64
|
-
return endsAt < now
|
|
66
|
+
return endsAt < now;
|
|
65
67
|
},
|
|
66
68
|
isUnavailable(event: IEvent): boolean {
|
|
67
69
|
if (!event.published) return true;
|
|
@@ -75,14 +77,16 @@ export default {
|
|
|
75
77
|
const ticketTypeCount = event.ticketTypes?.length;
|
|
76
78
|
const promotionCodeTicketCount = [
|
|
77
79
|
...new Set(
|
|
78
|
-
event.promotions
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
event.promotions
|
|
81
|
+
?.filter((a) => a.type === "Unlock")
|
|
82
|
+
.reduce((cur: string[], promotion) => {
|
|
83
|
+
// (this.isOnSale(event) ? promotion.type === "Unlock" : (promotion.type === "Presale" || promotion.type === "Unlock"))
|
|
84
|
+
// if(2!==2)
|
|
85
|
+
return [...cur, ...promotion.ticketTypeIds];
|
|
86
|
+
}, [])
|
|
83
87
|
),
|
|
84
88
|
].length;
|
|
85
|
-
|
|
89
|
+
|
|
86
90
|
return ticketTypeCount === promotionCodeTicketCount;
|
|
87
91
|
},
|
|
88
92
|
/****************************************************************************************
|
|
@@ -92,22 +96,39 @@ export default {
|
|
|
92
96
|
const {
|
|
93
97
|
performances: [performance],
|
|
94
98
|
} = event;
|
|
95
|
-
const { schedule
|
|
99
|
+
const { schedule } = performance;
|
|
100
|
+
let doorsAt = schedule[0].doorsAt;
|
|
101
|
+
let startsAt = schedule[0].startsAt;
|
|
102
|
+
/*const {
|
|
103
|
+
schedule: { doorsAt, startsAt },
|
|
96
104
|
} = performance;
|
|
97
|
-
|
|
105
|
+
console.log
|
|
98
106
|
changing to lower case
|
|
99
107
|
becuse previosly it is stored with different values
|
|
100
108
|
like Upon Order, Upon order
|
|
101
|
-
*/
|
|
102
|
-
if
|
|
103
|
-
|
|
109
|
+
*/
|
|
110
|
+
if (
|
|
111
|
+
event.sendQRCode.toLowerCase() === SendQRCodeEnum.UponOrder.toLowerCase()
|
|
112
|
+
) {
|
|
113
|
+
return Time.now();
|
|
104
114
|
}
|
|
105
115
|
|
|
106
|
-
if (
|
|
116
|
+
if (
|
|
117
|
+
event.sendQRCode.toLowerCase() ===
|
|
118
|
+
SendQRCodeEnum.TwoWeeksBefore.toLowerCase()
|
|
119
|
+
) {
|
|
107
120
|
const TWO_WEEKS = 14 * 24 * 60 * 60;
|
|
108
121
|
return startsAt - TWO_WEEKS;
|
|
109
122
|
}
|
|
110
123
|
|
|
124
|
+
// if (
|
|
125
|
+
// event.sendQRCode.toLowerCase() ===
|
|
126
|
+
// SendQRCodeEnum.DayOfShow.toLowerCase()
|
|
127
|
+
// ) {
|
|
128
|
+
// const TWO_WEEKS = 14 * 24 * 60 * 60;
|
|
129
|
+
// return startsAt - TWO_WEEKS;
|
|
130
|
+
// }
|
|
131
|
+
|
|
111
132
|
/* if (event.sendQRCode === "Upon Order") {
|
|
112
133
|
return Time.now();
|
|
113
134
|
}
|
|
@@ -125,8 +146,10 @@ export default {
|
|
|
125
146
|
|
|
126
147
|
// Never send a receipt if we are
|
|
127
148
|
// send a qr code upon order
|
|
128
|
-
if
|
|
129
|
-
|
|
149
|
+
if (
|
|
150
|
+
event.sendQRCode.toLowerCase() === SendQRCodeEnum.UponOrder.toLowerCase()
|
|
151
|
+
) {
|
|
152
|
+
return false;
|
|
130
153
|
}
|
|
131
154
|
// if (event.sendQRCode === "Upon Order") {
|
|
132
155
|
// return false;
|
|
@@ -263,8 +286,8 @@ export default {
|
|
|
263
286
|
(event?.upgrades ?? [])
|
|
264
287
|
// must be active
|
|
265
288
|
.filter((upgrade) => upgrade.visible)
|
|
266
|
-
|
|
267
|
-
|
|
289
|
+
// must have remaining qty
|
|
290
|
+
//.filter((upgrade) => upgrade.remainingQty > 0)
|
|
268
291
|
);
|
|
269
292
|
},
|
|
270
293
|
activeNonComplimentaryUpgrades(event: IEvent): IEventUpgrade[] {
|
|
@@ -300,7 +323,7 @@ export default {
|
|
|
300
323
|
isUpgradeForSpecificTickets(event: IEvent, upgrade: IEventUpgrade): boolean {
|
|
301
324
|
return Boolean(
|
|
302
325
|
event?.ticketTypes?.map((t) => t._id).sort() ===
|
|
303
|
-
|
|
326
|
+
upgrade?.ticketTypeIds?.sort()
|
|
304
327
|
);
|
|
305
328
|
},
|
|
306
329
|
/****************************************************************************************
|
|
@@ -383,7 +406,10 @@ export default {
|
|
|
383
406
|
|
|
384
407
|
if (
|
|
385
408
|
!required &&
|
|
386
|
-
(value === undefined ||
|
|
409
|
+
(value === undefined ||
|
|
410
|
+
value === "NaN" ||
|
|
411
|
+
value === "" ||
|
|
412
|
+
value === DropDownEnum.Select)
|
|
387
413
|
) {
|
|
388
414
|
return true;
|
|
389
415
|
}
|
|
@@ -522,10 +548,10 @@ export default {
|
|
|
522
548
|
/****************************************************************************************
|
|
523
549
|
* Ticket validate
|
|
524
550
|
****************************************************************************************/
|
|
525
|
-
validateTicket(ticket: ITicketType, isPaid: Boolean): any {
|
|
551
|
+
validateTicket(ticket: ITicketType, isPaid: Boolean, isMultipleDays: boolean): any {
|
|
526
552
|
let ticketSchema;
|
|
527
553
|
let limit = isPaid ? "Purchase limit" : "RSVP limit";
|
|
528
|
-
|
|
554
|
+
|
|
529
555
|
let used = ticket.totalQty - ticket.remainingQty;
|
|
530
556
|
ticketSchema = Joi.object()
|
|
531
557
|
.options({ abortEarly: false })
|
|
@@ -546,6 +572,7 @@ export default {
|
|
|
546
572
|
"number.min": `"${limit}" must be greater than 0`,
|
|
547
573
|
"number.base": `"${limit}" must be a number`,
|
|
548
574
|
}),
|
|
575
|
+
dayIds: Joi.array().min(isMultipleDays ? 1 : 0).items(Joi.string()).default([]).messages({ "array.min": "Ticket must have selected atleast one day." }),
|
|
549
576
|
tiers: Joi.array().items(
|
|
550
577
|
Joi.object()
|
|
551
578
|
.keys({
|
|
@@ -709,4 +736,67 @@ export default {
|
|
|
709
736
|
.unknown(true);
|
|
710
737
|
return refundFieldSchema.validate(refundField);
|
|
711
738
|
},
|
|
739
|
+
validateEventDates(event: IEvent): any {
|
|
740
|
+
const schedule: IEventSchedule = event?.schedule as IEventSchedule;
|
|
741
|
+
const announceAt = schedule?.announceAt as number;
|
|
742
|
+
const ticketsAt = schedule?.ticketsAt as number;
|
|
743
|
+
const ticketsEndAt = schedule?.ticketsEndAt as number;
|
|
744
|
+
const performance = event?.performances?.[0];
|
|
745
|
+
const startsAt =
|
|
746
|
+
(performance?.schedule &&
|
|
747
|
+
(performance?.schedule[0]?.startsAt as number)) ||
|
|
748
|
+
0;
|
|
749
|
+
const endsAt = event?.totalDays?.length === 0 ? (event?.schedule?.endsAt as number) :
|
|
750
|
+
(performance?.schedule &&
|
|
751
|
+
(performance?.schedule[performance?.schedule?.length - 1]
|
|
752
|
+
?.endsAt as number)) ||
|
|
753
|
+
0;
|
|
754
|
+
/* Actions */
|
|
755
|
+
let message = "" as string;
|
|
756
|
+
|
|
757
|
+
performance?.schedule?.some((a, i) => {
|
|
758
|
+
if (a.startsAt < a.doorsAt) {
|
|
759
|
+
message =
|
|
760
|
+
performance?.schedule && performance?.schedule?.length > 1
|
|
761
|
+
? "Doors Open should be less than or equal to Event Begins on day " +
|
|
762
|
+
(i + 1) +
|
|
763
|
+
"."
|
|
764
|
+
: "Doors Open should be less than or equal to Event Begins.";
|
|
765
|
+
return message;
|
|
766
|
+
} else if (a.startsAt >(event?.totalDays?.length === 0 ? (event?.schedule?.endsAt as number) : a.endsAt)) {
|
|
767
|
+
message =
|
|
768
|
+
performance?.schedule && performance?.schedule?.length > 1
|
|
769
|
+
? "Event Ends should be greater than Event Begins on day " +
|
|
770
|
+
(i + 1) +
|
|
771
|
+
"."
|
|
772
|
+
: "Event Ends should be greater than Event Begins.";
|
|
773
|
+
return message;
|
|
774
|
+
} else if (performance?.schedule && performance?.schedule?.length > 1) {
|
|
775
|
+
const aa =
|
|
776
|
+
performance?.schedule?.[i + 1]?.startsAt &&
|
|
777
|
+
performance?.schedule?.[i + 1]?.startsAt > (event?.totalDays?.length === 0 ? (event?.schedule?.endsAt as number) : a.endsAt);
|
|
778
|
+
if (!aa && aa !== undefined) {
|
|
779
|
+
message=(
|
|
780
|
+
"Day " +
|
|
781
|
+
(i + 2) +
|
|
782
|
+
" Event Begins should be greater than day " +
|
|
783
|
+
(i + 1) +
|
|
784
|
+
" Event Ends."
|
|
785
|
+
);
|
|
786
|
+
return message;
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
});
|
|
790
|
+
if (announceAt > startsAt) {
|
|
791
|
+
message = "Announcement Date should be less than Event Begins.";
|
|
792
|
+
return message;
|
|
793
|
+
} else if (ticketsAt < announceAt || ticketsAt > ticketsEndAt) {
|
|
794
|
+
message = "Sales Begin should be greater than or equal to Announcement Date and less than Sales End.";
|
|
795
|
+
return message;
|
|
796
|
+
} else if (ticketsEndAt > endsAt) {
|
|
797
|
+
message = "Sales End should be less than or equal to Event Ends.";
|
|
798
|
+
return message;
|
|
799
|
+
}
|
|
800
|
+
return message;
|
|
801
|
+
},
|
|
712
802
|
};
|