@chevre/domain 24.0.0-alpha.46 → 24.0.0-alpha.48

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 (28) hide show
  1. package/lib/chevre/repo/assetTransaction/reserve.d.ts +2 -1
  2. package/lib/chevre/repo/factory/reservation/createMongoConditions.d.ts +3 -0
  3. package/lib/chevre/repo/factory/reservation/createMongoConditions.js +771 -0
  4. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +1 -1
  5. package/lib/chevre/repo/reservation.d.ts +23 -17
  6. package/lib/chevre/repo/reservation.js +8 -752
  7. package/lib/chevre/service/assetTransaction/cancelReservation/factory.d.ts +2 -2
  8. package/lib/chevre/service/assetTransaction/cancelReservation/start.d.ts +1 -1
  9. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +1 -1
  10. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.d.ts +1 -1
  11. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.d.ts +2 -2
  12. package/lib/chevre/service/offer/event/authorize/factory.d.ts +1 -1
  13. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +1 -1
  14. package/lib/chevre/service/reserve/cancelReservation.d.ts +1 -1
  15. package/lib/chevre/service/reserve/cancelReservation.js +14 -10
  16. package/lib/chevre/service/reserve/confirmReservation.js +10 -6
  17. package/lib/chevre/service/reserve/factory.d.ts +2 -2
  18. package/lib/chevre/service/reserve/findByCode.d.ts +1 -2
  19. package/lib/chevre/service/reserve/findByCode.js +1 -1
  20. package/lib/chevre/service/reserve/findReservations.d.ts +19 -0
  21. package/lib/chevre/service/reserve/findReservations.js +74 -0
  22. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +1 -1
  23. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.d.ts +5 -2
  24. package/lib/chevre/service/reserve/searchByOrder.d.ts +1 -1
  25. package/lib/chevre/service/reserve/useReservation.js +1 -1
  26. package/lib/chevre/service/reserve.d.ts +2 -1
  27. package/lib/chevre/service/reserve.js +3 -1
  28. package/package.json +3 -3
@@ -0,0 +1,771 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.CREATE_MONGO_CONDITIONS = CREATE_MONGO_CONDITIONS;
27
+ const factory = __importStar(require("../../../factory"));
28
+ function CREATE_MONGO_CONDITIONS(params) {
29
+ // MongoDB検索条件
30
+ const andConditions = [
31
+ { typeOf: { $eq: params.typeOf } }
32
+ ];
33
+ const projectIdEq = params.project?.id?.$eq;
34
+ if (typeof projectIdEq === 'string') {
35
+ andConditions.push({ 'project.id': { $eq: projectIdEq } });
36
+ }
37
+ const providerIdEq = params.provider?.id?.$eq;
38
+ if (typeof providerIdEq === 'string') {
39
+ andConditions.push({ 'provider.id': { $eq: providerIdEq } });
40
+ }
41
+ /* istanbul ignore else */
42
+ if (Array.isArray(params.ids)) {
43
+ andConditions.push({ _id: { $in: params.ids } });
44
+ }
45
+ /* istanbul ignore else */
46
+ if (params.id !== undefined && params.id !== null) {
47
+ if (typeof params.id.$eq === 'string') {
48
+ andConditions.push({ _id: { $eq: params.id.$eq } });
49
+ }
50
+ if (typeof params.id.$ne === 'string') {
51
+ andConditions.push({ _id: { $ne: params.id.$ne } });
52
+ }
53
+ if (Array.isArray(params.id.$in)) {
54
+ andConditions.push({ _id: { $in: params.id.$in } });
55
+ }
56
+ if (Array.isArray(params.id.$nin)) {
57
+ andConditions.push({ _id: { $nin: params.id.$nin } });
58
+ }
59
+ }
60
+ /* istanbul ignore else */
61
+ if (Array.isArray(params.reservationNumbers)) {
62
+ andConditions.push({
63
+ reservationNumber: {
64
+ $in: params.reservationNumbers
65
+ }
66
+ });
67
+ }
68
+ /* istanbul ignore else */
69
+ if (params.reservationNumber !== undefined && params.reservationNumber !== null) {
70
+ if (typeof params.reservationNumber === 'string') {
71
+ if (params.reservationNumber.length > 0) {
72
+ andConditions.push({
73
+ reservationNumber: {
74
+ $regex: new RegExp(params.reservationNumber)
75
+ }
76
+ });
77
+ }
78
+ }
79
+ else {
80
+ if (typeof params.reservationNumber.$eq === 'string') {
81
+ andConditions.push({
82
+ reservationNumber: {
83
+ $eq: params.reservationNumber.$eq
84
+ }
85
+ });
86
+ }
87
+ if (typeof params.reservationNumber.$ne === 'string') {
88
+ andConditions.push({
89
+ reservationNumber: {
90
+ $ne: params.reservationNumber.$ne
91
+ }
92
+ });
93
+ }
94
+ if (Array.isArray(params.reservationNumber.$in)) {
95
+ andConditions.push({
96
+ reservationNumber: {
97
+ $in: params.reservationNumber.$in
98
+ }
99
+ });
100
+ }
101
+ if (Array.isArray(params.reservationNumber.$nin)) {
102
+ andConditions.push({
103
+ reservationNumber: {
104
+ $nin: params.reservationNumber.$nin
105
+ }
106
+ });
107
+ }
108
+ }
109
+ }
110
+ /* istanbul ignore else */
111
+ if (params.additionalTicketText !== undefined && params.additionalTicketText !== null) {
112
+ if (typeof params.additionalTicketText === 'string') {
113
+ if (params.additionalTicketText.length > 0) {
114
+ andConditions.push({
115
+ additionalTicketText: {
116
+ $exists: true,
117
+ $regex: new RegExp(params.additionalTicketText)
118
+ }
119
+ });
120
+ }
121
+ }
122
+ else {
123
+ if (typeof params.additionalTicketText.$eq === 'string') {
124
+ andConditions.push({
125
+ additionalTicketText: {
126
+ $exists: true,
127
+ $eq: params.additionalTicketText.$eq
128
+ }
129
+ });
130
+ }
131
+ if (typeof params.additionalTicketText.$ne === 'string') {
132
+ andConditions.push({
133
+ additionalTicketText: {
134
+ $ne: params.additionalTicketText.$ne
135
+ }
136
+ });
137
+ }
138
+ if (Array.isArray(params.additionalTicketText.$in)) {
139
+ andConditions.push({
140
+ additionalTicketText: {
141
+ $exists: true,
142
+ $in: params.additionalTicketText.$in
143
+ }
144
+ });
145
+ }
146
+ if (Array.isArray(params.additionalTicketText.$nin)) {
147
+ andConditions.push({
148
+ additionalTicketText: {
149
+ $nin: params.additionalTicketText.$nin
150
+ }
151
+ });
152
+ }
153
+ const additionalTicketTextRegex = params.additionalTicketText?.$regex;
154
+ if (typeof additionalTicketTextRegex === 'string' && additionalTicketTextRegex.length > 0) {
155
+ const additionalTicketTextOptions = params.additionalTicketText?.$options;
156
+ andConditions.push({
157
+ additionalTicketText: {
158
+ $exists: true,
159
+ $regex: new RegExp(additionalTicketTextRegex),
160
+ ...(typeof additionalTicketTextOptions === 'string') ? { $options: additionalTicketTextOptions } : undefined
161
+ }
162
+ });
163
+ }
164
+ }
165
+ }
166
+ const reservationStatusEq = params.reservationStatus?.$eq;
167
+ if (typeof reservationStatusEq === 'string') {
168
+ andConditions.push({ reservationStatus: { $eq: reservationStatusEq } });
169
+ }
170
+ const reservationStatusNe = params.reservationStatus?.$ne;
171
+ if (typeof reservationStatusNe === 'string') {
172
+ andConditions.push({ reservationStatus: { $ne: reservationStatusNe } });
173
+ }
174
+ const reservationStatusIn = params.reservationStatus?.$in;
175
+ if (Array.isArray(reservationStatusIn)) {
176
+ andConditions.push({ reservationStatus: { $in: reservationStatusIn } });
177
+ }
178
+ /* istanbul ignore else */
179
+ if (Array.isArray(params.reservationStatuses)) {
180
+ andConditions.push({ reservationStatus: { $in: params.reservationStatuses } });
181
+ }
182
+ /* istanbul ignore else */
183
+ if (params.modifiedFrom instanceof Date) {
184
+ andConditions.push({
185
+ modifiedTime: { $gte: params.modifiedFrom }
186
+ });
187
+ }
188
+ /* istanbul ignore else */
189
+ if (params.modifiedThrough instanceof Date) {
190
+ andConditions.push({
191
+ modifiedTime: { $lte: params.modifiedThrough }
192
+ });
193
+ }
194
+ /* istanbul ignore else */
195
+ if (params.bookingFrom instanceof Date) {
196
+ andConditions.push({
197
+ bookingTime: {
198
+ $exists: true,
199
+ $gte: params.bookingFrom
200
+ }
201
+ });
202
+ }
203
+ /* istanbul ignore else */
204
+ if (params.bookingThrough instanceof Date) {
205
+ andConditions.push({
206
+ bookingTime: {
207
+ $exists: true,
208
+ $lte: params.bookingThrough
209
+ }
210
+ });
211
+ }
212
+ switch (params.typeOf) {
213
+ // case factory.reservationType.BusReservation:
214
+ // const reservationForTypeOfEq = params.reservationFor?.typeOf;
215
+ // if (typeof reservationForTypeOfEq === 'string') {
216
+ // andConditions.push(
217
+ // {
218
+ // 'reservationFor.typeOf': {
219
+ // $exists: true,
220
+ // $eq: reservationForTypeOfEq
221
+ // }
222
+ // }
223
+ // );
224
+ // }
225
+ // const reservationForIdEq = params.reservationFor?.id?.$eq;
226
+ // if (typeof reservationForIdEq === 'string') {
227
+ // andConditions.push(
228
+ // {
229
+ // 'reservationFor.id': {
230
+ // $exists: true,
231
+ // $eq: reservationForIdEq
232
+ // }
233
+ // }
234
+ // );
235
+ // }
236
+ // const reservationForIdIn = params.reservationFor?.id?.$in;
237
+ // if (Array.isArray(reservationForIdIn)) {
238
+ // andConditions.push(
239
+ // {
240
+ // 'reservationFor.id': {
241
+ // $exists: true,
242
+ // $in: reservationForIdIn
243
+ // }
244
+ // }
245
+ // );
246
+ // }
247
+ // break;
248
+ case factory.reservationType.EventReservation:
249
+ if (typeof params.reservationFor?.id === 'string') {
250
+ andConditions.push({
251
+ 'reservationFor.id': {
252
+ $exists: true,
253
+ $eq: params.reservationFor.id
254
+ }
255
+ });
256
+ }
257
+ else {
258
+ const reservationForIdEq4eventReservation = params.reservationFor?.id?.$eq;
259
+ if (typeof reservationForIdEq4eventReservation === 'string') {
260
+ andConditions.push({
261
+ 'reservationFor.id': {
262
+ $exists: true,
263
+ $eq: reservationForIdEq4eventReservation
264
+ }
265
+ });
266
+ }
267
+ }
268
+ /* istanbul ignore else */
269
+ if (params.reservationFor !== undefined) {
270
+ /* istanbul ignore else */
271
+ if (params.reservationFor.typeOf !== undefined) {
272
+ andConditions.push({
273
+ 'reservationFor.typeOf': {
274
+ $exists: true,
275
+ $eq: params.reservationFor.typeOf
276
+ }
277
+ });
278
+ }
279
+ /* istanbul ignore else */
280
+ if (Array.isArray(params.reservationFor.ids)) {
281
+ andConditions.push({
282
+ 'reservationFor.id': {
283
+ $exists: true,
284
+ $in: params.reservationFor.ids
285
+ }
286
+ });
287
+ }
288
+ /* istanbul ignore else */
289
+ if (params.reservationFor.location !== undefined) {
290
+ /* istanbul ignore else */
291
+ if (Array.isArray(params.reservationFor.location.ids)) {
292
+ andConditions.push({
293
+ 'reservationFor.location.id': {
294
+ $exists: true,
295
+ $in: params.reservationFor.location.ids
296
+ }
297
+ });
298
+ }
299
+ /* istanbul ignore else */
300
+ if (Array.isArray(params.reservationFor.location.branchCodes)) {
301
+ andConditions.push({
302
+ 'reservationFor.location.branchCode': {
303
+ $exists: true,
304
+ $in: params.reservationFor.location.branchCodes
305
+ }
306
+ });
307
+ }
308
+ }
309
+ /* istanbul ignore else */
310
+ if (params.reservationFor.startFrom instanceof Date) {
311
+ andConditions.push({
312
+ 'reservationFor.startDate': {
313
+ $exists: true,
314
+ $gte: params.reservationFor.startFrom
315
+ }
316
+ });
317
+ }
318
+ /* istanbul ignore else */
319
+ if (params.reservationFor.startThrough instanceof Date) {
320
+ andConditions.push({
321
+ 'reservationFor.startDate': {
322
+ $exists: true,
323
+ $lte: params.reservationFor.startThrough
324
+ }
325
+ });
326
+ }
327
+ /* istanbul ignore else */
328
+ if (params.reservationFor.endFrom instanceof Date) {
329
+ andConditions.push({
330
+ 'reservationFor.endDate': {
331
+ $exists: true,
332
+ $gte: params.reservationFor.endFrom
333
+ }
334
+ });
335
+ }
336
+ /* istanbul ignore else */
337
+ if (params.reservationFor.endThrough instanceof Date) {
338
+ andConditions.push({
339
+ 'reservationFor.endDate': {
340
+ $exists: true,
341
+ $lte: params.reservationFor.endThrough
342
+ }
343
+ });
344
+ }
345
+ /* istanbul ignore else */
346
+ if (params.reservationFor.superEvent !== undefined) {
347
+ /* istanbul ignore else */
348
+ if (params.reservationFor.superEvent.id !== undefined) {
349
+ andConditions.push({
350
+ 'reservationFor.superEvent.id': {
351
+ $exists: true,
352
+ $eq: params.reservationFor.superEvent.id
353
+ }
354
+ });
355
+ }
356
+ /* istanbul ignore else */
357
+ if (Array.isArray(params.reservationFor.superEvent.ids)) {
358
+ andConditions.push({
359
+ 'reservationFor.superEvent.id': {
360
+ $exists: true,
361
+ $in: params.reservationFor.superEvent.ids
362
+ }
363
+ });
364
+ }
365
+ /* istanbul ignore else */
366
+ if (params.reservationFor.superEvent.location !== undefined) {
367
+ /* istanbul ignore else */
368
+ if (Array.isArray(params.reservationFor.superEvent.location.ids)) {
369
+ andConditions.push({
370
+ 'reservationFor.superEvent.location.id': {
371
+ $exists: true,
372
+ $in: params.reservationFor.superEvent.location.ids
373
+ }
374
+ });
375
+ }
376
+ /* istanbul ignore else */
377
+ if (Array.isArray(params.reservationFor.superEvent.location.branchCodes)) {
378
+ andConditions.push({
379
+ 'reservationFor.superEvent.location.branchCode': {
380
+ $exists: true,
381
+ $in: params.reservationFor.superEvent.location.branchCodes
382
+ }
383
+ });
384
+ }
385
+ }
386
+ /* istanbul ignore else */
387
+ if (params.reservationFor.superEvent.workPerformed !== undefined) {
388
+ /* istanbul ignore else */
389
+ if (Array.isArray(params.reservationFor.superEvent.workPerformed.ids)) {
390
+ andConditions.push({
391
+ 'reservationFor.superEvent.workPerformed.id': {
392
+ $exists: true,
393
+ $in: params.reservationFor.superEvent.workPerformed.ids
394
+ }
395
+ });
396
+ }
397
+ /* istanbul ignore else */
398
+ if (Array.isArray(params.reservationFor.superEvent.workPerformed.identifiers)) {
399
+ andConditions.push({
400
+ 'reservationFor.superEvent.workPerformed.identifier': {
401
+ $exists: true,
402
+ $in: params.reservationFor.superEvent.workPerformed.identifiers
403
+ }
404
+ });
405
+ }
406
+ }
407
+ }
408
+ }
409
+ break;
410
+ // case factory.reservationType.ReservationPackage:
411
+ // break;
412
+ default:
413
+ }
414
+ /* istanbul ignore else */
415
+ if (params.reservedTicket !== undefined) {
416
+ /* istanbul ignore else */
417
+ if (params.reservedTicket.ticketType !== undefined) {
418
+ /* istanbul ignore else */
419
+ if (Array.isArray(params.reservedTicket.ticketType.ids)) {
420
+ andConditions.push({
421
+ 'reservedTicket.ticketType.id': {
422
+ $exists: true,
423
+ $in: params.reservedTicket.ticketType.ids
424
+ }
425
+ });
426
+ }
427
+ /* istanbul ignore else */
428
+ if (params.reservedTicket.ticketType.category !== undefined) {
429
+ /* istanbul ignore else */
430
+ if (Array.isArray(params.reservedTicket.ticketType.category.ids)) {
431
+ andConditions.push({
432
+ 'reservedTicket.ticketType.category.id': {
433
+ $exists: true,
434
+ $in: params.reservedTicket.ticketType.category.ids
435
+ }
436
+ });
437
+ }
438
+ /* istanbul ignore else */
439
+ if (params.reservedTicket.ticketType.category.codeValue !== undefined
440
+ && params.reservedTicket.ticketType.category !== null) {
441
+ if (Array.isArray(params.reservedTicket.ticketType.category.codeValue.$in)) {
442
+ andConditions.push({
443
+ 'reservedTicket.ticketType.category.codeValue': {
444
+ $exists: true,
445
+ $in: params.reservedTicket.ticketType.category.codeValue.$in
446
+ }
447
+ });
448
+ }
449
+ }
450
+ }
451
+ }
452
+ /* istanbul ignore else */
453
+ if (params.reservedTicket.ticketedSeat !== undefined) {
454
+ /* istanbul ignore else */
455
+ if (Array.isArray(params.reservedTicket.ticketedSeat.seatNumbers)) {
456
+ andConditions.push({
457
+ 'reservedTicket.ticketedSeat.seatNumber': {
458
+ $exists: true,
459
+ $in: params.reservedTicket.ticketedSeat.seatNumbers
460
+ }
461
+ });
462
+ }
463
+ /* istanbul ignore else */
464
+ if (Array.isArray(params.reservedTicket.ticketedSeat.seatRows)) {
465
+ andConditions.push({
466
+ 'reservedTicket.ticketedSeat.seatRow': {
467
+ $exists: true,
468
+ $in: params.reservedTicket.ticketedSeat.seatRows
469
+ }
470
+ });
471
+ }
472
+ /* istanbul ignore else */
473
+ if (Array.isArray(params.reservedTicket.ticketedSeat.seatSections)) {
474
+ andConditions.push({
475
+ 'reservedTicket.ticketedSeat.seatSection': {
476
+ $exists: true,
477
+ $in: params.reservedTicket.ticketedSeat.seatSections
478
+ }
479
+ });
480
+ }
481
+ /* istanbul ignore else */
482
+ const ticketedSeatSeatingTypeIn = params.reservedTicket.ticketedSeat?.seatingType?.$in;
483
+ if (Array.isArray(ticketedSeatSeatingTypeIn)) {
484
+ andConditions.push({
485
+ 'reservedTicket.ticketedSeat.seatingType': {
486
+ $exists: true,
487
+ $in: ticketedSeatSeatingTypeIn
488
+ }
489
+ });
490
+ }
491
+ }
492
+ }
493
+ const brokerIdRegex = params.broker?.id;
494
+ if (typeof brokerIdRegex === 'string' && brokerIdRegex.length > 0) {
495
+ andConditions.push({
496
+ 'broker.id': {
497
+ $exists: true,
498
+ $regex: new RegExp(brokerIdRegex)
499
+ }
500
+ });
501
+ }
502
+ const brokerIdentifierAll = params.broker?.identifier?.$all;
503
+ if (Array.isArray(brokerIdentifierAll)) {
504
+ andConditions.push({
505
+ 'broker.identifier': {
506
+ $exists: true,
507
+ $all: brokerIdentifierAll
508
+ }
509
+ });
510
+ }
511
+ const brokerIdentifierIn = params.broker?.identifier?.$in;
512
+ if (Array.isArray(brokerIdentifierIn)) {
513
+ andConditions.push({
514
+ 'broker.identifier': {
515
+ $exists: true,
516
+ $in: brokerIdentifierIn
517
+ }
518
+ });
519
+ }
520
+ const brokerIdentifierNin = params.broker?.identifier?.$nin;
521
+ if (Array.isArray(brokerIdentifierNin)) {
522
+ andConditions.push({
523
+ 'broker.identifier': {
524
+ $nin: brokerIdentifierNin
525
+ }
526
+ });
527
+ }
528
+ const brokerIdentifierElemMatch = params.broker?.identifier?.$elemMatch;
529
+ if (brokerIdentifierElemMatch !== undefined && brokerIdentifierElemMatch !== null) {
530
+ andConditions.push({
531
+ 'broker.identifier': {
532
+ $exists: true,
533
+ $elemMatch: brokerIdentifierElemMatch
534
+ }
535
+ });
536
+ }
537
+ /* istanbul ignore else */
538
+ if (params.underName !== undefined) {
539
+ /* istanbul ignore else */
540
+ if (typeof params.underName.id === 'string' && params.underName.id.length > 0) {
541
+ andConditions.push({
542
+ 'underName.id': {
543
+ $exists: true,
544
+ $regex: new RegExp(params.underName.id)
545
+ }
546
+ });
547
+ }
548
+ /* istanbul ignore else */
549
+ if (typeof params.underName.email === 'string') {
550
+ if (params.underName.email.length > 0) {
551
+ andConditions.push({
552
+ 'underName.email': {
553
+ $exists: true,
554
+ $regex: new RegExp(params.underName.email)
555
+ }
556
+ });
557
+ }
558
+ }
559
+ else {
560
+ const emailRegex = params.underName.email?.$regex;
561
+ if (typeof emailRegex === 'string' && emailRegex.length > 0) {
562
+ const emailOptions = params.underName.email?.$options;
563
+ andConditions.push({
564
+ 'underName.email': {
565
+ $exists: true,
566
+ $regex: new RegExp(emailRegex),
567
+ ...(typeof emailOptions === 'string') ? { $options: emailOptions } : undefined
568
+ }
569
+ });
570
+ }
571
+ }
572
+ /* istanbul ignore else */
573
+ if (typeof params.underName.name === 'string') {
574
+ if (params.underName.name.length > 0) {
575
+ andConditions.push({
576
+ 'underName.name': {
577
+ $exists: true,
578
+ $regex: new RegExp(params.underName.name)
579
+ }
580
+ });
581
+ }
582
+ }
583
+ else {
584
+ const underNameNameRegex = params.underName.name?.$regex;
585
+ if (typeof underNameNameRegex === 'string' && underNameNameRegex.length > 0) {
586
+ const underNameNameOptions = params.underName.name?.$options;
587
+ andConditions.push({
588
+ 'underName.name': {
589
+ $exists: true,
590
+ $regex: new RegExp(underNameNameRegex),
591
+ ...(typeof underNameNameOptions === 'string') ? { $options: underNameNameOptions } : undefined
592
+ }
593
+ });
594
+ }
595
+ }
596
+ /* istanbul ignore else */
597
+ if (typeof params.underName.telephone === 'string' && params.underName.telephone.length > 0) {
598
+ andConditions.push({
599
+ 'underName.telephone': {
600
+ $exists: true,
601
+ $regex: new RegExp(params.underName.telephone)
602
+ }
603
+ });
604
+ }
605
+ /* istanbul ignore else */
606
+ if (typeof params.underName.givenName === 'string') {
607
+ if (params.underName.givenName.length > 0) {
608
+ andConditions.push({
609
+ 'underName.givenName': {
610
+ $exists: true,
611
+ $regex: new RegExp(params.underName.givenName)
612
+ }
613
+ });
614
+ }
615
+ }
616
+ else {
617
+ const givenNameRegex = params.underName.givenName?.$regex;
618
+ if (typeof givenNameRegex === 'string' && givenNameRegex.length > 0) {
619
+ const givenNameOptions = params.underName.givenName?.$options;
620
+ andConditions.push({
621
+ 'underName.givenName': {
622
+ $exists: true,
623
+ $regex: new RegExp(givenNameRegex),
624
+ ...(typeof givenNameOptions === 'string') ? { $options: givenNameOptions } : undefined
625
+ }
626
+ });
627
+ }
628
+ }
629
+ /* istanbul ignore else */
630
+ if (typeof params.underName.familyName === 'string') {
631
+ if (params.underName.familyName.length > 0) {
632
+ andConditions.push({
633
+ 'underName.familyName': {
634
+ $exists: true,
635
+ $regex: new RegExp(params.underName.familyName)
636
+ }
637
+ });
638
+ }
639
+ }
640
+ else {
641
+ const familyNameRegex = params.underName.familyName?.$regex;
642
+ if (typeof familyNameRegex === 'string' && familyNameRegex.length > 0) {
643
+ const familyNameOptions = params.underName.familyName?.$options;
644
+ andConditions.push({
645
+ 'underName.familyName': {
646
+ $exists: true,
647
+ $regex: new RegExp(familyNameRegex),
648
+ ...(typeof familyNameOptions === 'string') ? { $options: familyNameOptions } : undefined
649
+ }
650
+ });
651
+ }
652
+ }
653
+ /* istanbul ignore else */
654
+ if (params.underName.identifier !== undefined) {
655
+ if (Array.isArray(params.underName.identifier.$all)) {
656
+ andConditions.push({
657
+ 'underName.identifier': {
658
+ $exists: true,
659
+ $all: params.underName.identifier.$all
660
+ }
661
+ });
662
+ }
663
+ if (Array.isArray(params.underName.identifier.$in)) {
664
+ andConditions.push({
665
+ 'underName.identifier': {
666
+ $exists: true,
667
+ $in: params.underName.identifier.$in
668
+ }
669
+ });
670
+ }
671
+ if (Array.isArray(params.underName.identifier.$nin)) {
672
+ andConditions.push({
673
+ 'underName.identifier': {
674
+ $nin: params.underName.identifier.$nin
675
+ }
676
+ });
677
+ }
678
+ if (params.underName.identifier.$elemMatch !== undefined) {
679
+ andConditions.push({
680
+ 'underName.identifier': {
681
+ $exists: true,
682
+ $elemMatch: params.underName.identifier.$elemMatch
683
+ }
684
+ });
685
+ }
686
+ }
687
+ /* istanbul ignore else */
688
+ if (Array.isArray(params.underName.identifiers)) {
689
+ andConditions.push({
690
+ 'underName.identifier': {
691
+ $exists: true,
692
+ $in: params.underName.identifiers
693
+ }
694
+ });
695
+ }
696
+ }
697
+ /* istanbul ignore else */
698
+ if (typeof params.attended === 'boolean') {
699
+ andConditions.push({
700
+ attended: params.attended
701
+ });
702
+ }
703
+ /* istanbul ignore else */
704
+ if (typeof params.checkedIn === 'boolean') {
705
+ andConditions.push({
706
+ checkedIn: params.checkedIn
707
+ });
708
+ }
709
+ /* istanbul ignore else */
710
+ if (params.additionalProperty !== undefined) {
711
+ if (Array.isArray(params.additionalProperty.$all)) {
712
+ andConditions.push({
713
+ additionalProperty: {
714
+ $exists: true,
715
+ $all: params.additionalProperty.$all
716
+ }
717
+ });
718
+ }
719
+ if (Array.isArray(params.additionalProperty.$in)) {
720
+ andConditions.push({
721
+ additionalProperty: {
722
+ $exists: true,
723
+ $in: params.additionalProperty.$in
724
+ }
725
+ });
726
+ }
727
+ if (Array.isArray(params.additionalProperty.$nin)) {
728
+ andConditions.push({
729
+ additionalProperty: {
730
+ $nin: params.additionalProperty.$nin
731
+ }
732
+ });
733
+ }
734
+ if (params.additionalProperty.$elemMatch !== undefined) {
735
+ andConditions.push({
736
+ additionalProperty: {
737
+ $exists: true,
738
+ $elemMatch: params.additionalProperty.$elemMatch
739
+ }
740
+ });
741
+ }
742
+ }
743
+ const programMembershipUsedIdentifierEq = params.programMembershipUsed?.identifier?.$eq;
744
+ if (typeof programMembershipUsedIdentifierEq === 'string') {
745
+ andConditions.push({
746
+ 'programMembershipUsed.identifier': {
747
+ $exists: true,
748
+ $eq: programMembershipUsedIdentifierEq
749
+ }
750
+ });
751
+ }
752
+ const programMembershipUsedIssuedThroughServiceTypeCodeValueEq = params.programMembershipUsed?.issuedThrough?.serviceType?.codeValue?.$eq;
753
+ if (typeof programMembershipUsedIssuedThroughServiceTypeCodeValueEq === 'string') {
754
+ andConditions.push({
755
+ 'programMembershipUsed.issuedThrough.serviceType.codeValue': {
756
+ $exists: true,
757
+ $eq: programMembershipUsedIssuedThroughServiceTypeCodeValueEq
758
+ }
759
+ });
760
+ }
761
+ const appliesToMovieTicketIdentifierEq = params.price?.priceComponent?.appliesToMovieTicket?.identifier?.$eq;
762
+ if (typeof appliesToMovieTicketIdentifierEq === 'string') {
763
+ andConditions.push({
764
+ 'price.priceComponent.appliesToMovieTicket.identifier': {
765
+ $exists: true,
766
+ $eq: appliesToMovieTicketIdentifierEq
767
+ }
768
+ });
769
+ }
770
+ return andConditions;
771
+ }