@timardex/cluemart-server-shared 1.0.0

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.
@@ -0,0 +1,885 @@
1
+ import {
2
+ NotificationModel,
3
+ PushTokenModel
4
+ } from "../chunk-XNN5GVG3.mjs";
5
+
6
+ // src/mongoose/Ad.ts
7
+ import {
8
+ EnumAdShowOn,
9
+ EnumAdStatus,
10
+ EnumAdStyle,
11
+ EnumAdType,
12
+ EnumResourceType as EnumResourceType3
13
+ } from "@timardex/cluemart-shared";
14
+ import mongoose4 from "mongoose";
15
+
16
+ // src/mongoose/global.ts
17
+ import {
18
+ EnumResourceType as EnumResourceType2,
19
+ EnumUserLicence
20
+ } from "@timardex/cluemart-shared";
21
+ import mongoose3 from "mongoose";
22
+
23
+ // src/mongoose/Relation.ts
24
+ import mongoose2 from "mongoose";
25
+ import {
26
+ EnumInviteStatus,
27
+ EnumRelationResource,
28
+ EnumResourceType
29
+ } from "@timardex/cluemart-shared";
30
+
31
+ // src/mongoose/event/EventInfo.ts
32
+ import {
33
+ EnumPaymentMethod
34
+ } from "@timardex/cluemart-shared";
35
+ import mongoose from "mongoose";
36
+ var MongooseSchema = mongoose.Schema;
37
+ var StallTypeSchema = new MongooseSchema(
38
+ {
39
+ electricity: {
40
+ price: { required: false, type: Number },
41
+ selected: { required: false, type: Boolean }
42
+ },
43
+ label: { required: false, type: String },
44
+ price: { required: false, type: Number },
45
+ stallCapacity: { required: false, type: Number }
46
+ },
47
+ {
48
+ _id: false
49
+ // Prevents Mongoose from creating an additional _id field for subdocuments
50
+ }
51
+ );
52
+ var dateTimeSchema = new MongooseSchema(
53
+ {
54
+ endDate: { required: true, type: String },
55
+ endTime: { required: true, type: String },
56
+ stallTypes: [StallTypeSchema],
57
+ startDate: { required: true, type: String },
58
+ startTime: { required: true, type: String }
59
+ },
60
+ { _id: false }
61
+ // Prevents Mongoose from creating an additional _id field for subdocuments
62
+ );
63
+ var paymentInfoSchema = new MongooseSchema(
64
+ {
65
+ accountHolderName: { required: false, type: String },
66
+ accountNumber: { required: false, type: String },
67
+ link: { required: false, type: String },
68
+ paymentMethod: {
69
+ enum: Object.values(EnumPaymentMethod),
70
+ required: true,
71
+ type: String
72
+ }
73
+ },
74
+ { _id: false }
75
+ // Prevents Mongoose from creating an additional _id field
76
+ );
77
+ var requirementsSchema = new MongooseSchema(
78
+ {
79
+ category: { required: true, type: String },
80
+ label: { required: true, type: String },
81
+ value: { required: true, type: Boolean }
82
+ },
83
+ {
84
+ _id: false
85
+ // Prevents Mongoose from creating an additional _id field for
86
+ }
87
+ );
88
+ var schema = new MongooseSchema(
89
+ {
90
+ applicationDeadlineHours: { required: true, type: Number },
91
+ dateTime: [dateTimeSchema],
92
+ eventId: {
93
+ ref: "Event",
94
+ required: false,
95
+ type: mongoose.Schema.Types.ObjectId
96
+ },
97
+ packInTime: { required: true, type: Number },
98
+ paymentDueHours: { required: true, type: Number },
99
+ paymentInfo: [paymentInfoSchema],
100
+ requirements: [requirementsSchema]
101
+ },
102
+ { timestamps: true }
103
+ );
104
+ var EventInfoModel = mongoose.models.EventInfo || mongoose.model("EventInfo", schema);
105
+
106
+ // src/mongoose/Relation.ts
107
+ var MongooseSchema2 = mongoose2.Schema;
108
+ var relationDatesSchema = new MongooseSchema2(
109
+ {
110
+ lastUpdateBy: {
111
+ resourceId: { required: false, type: String },
112
+ userEmail: { required: false, type: String }
113
+ },
114
+ paymentReference: { required: false, type: String },
115
+ stallType: StallTypeSchema,
116
+ startDate: { required: false, type: String },
117
+ startTime: { required: false, type: String },
118
+ status: {
119
+ enum: Object.values(EnumInviteStatus),
120
+ required: false,
121
+ type: String
122
+ }
123
+ },
124
+ { _id: false }
125
+ );
126
+ var RelationTypeSchema = new MongooseSchema2(
127
+ {
128
+ active: { default: true, required: true, type: Boolean },
129
+ chatId: {
130
+ ref: "Chat",
131
+ required: true,
132
+ type: mongoose2.Schema.Types.ObjectId
133
+ },
134
+ deletedAt: { default: null, required: false, type: Date },
135
+ eventId: {
136
+ ref: "Event",
137
+ required: true,
138
+ type: mongoose2.Schema.Types.ObjectId
139
+ },
140
+ lastUpdateBy: {
141
+ enum: Object.values(EnumResourceType),
142
+ required: true,
143
+ type: String
144
+ },
145
+ relationDates: [relationDatesSchema],
146
+ relationType: {
147
+ enum: Object.values(EnumRelationResource),
148
+ required: true,
149
+ type: String
150
+ },
151
+ vendorId: {
152
+ ref: "Vendor",
153
+ required: true,
154
+ type: mongoose2.Schema.Types.ObjectId
155
+ }
156
+ },
157
+ { timestamps: true }
158
+ );
159
+ RelationTypeSchema.index({
160
+ "relationDates.startDate": 1,
161
+ "relationDates.startTime": 1,
162
+ "relationDates.status": 1
163
+ });
164
+ var RelationModel = mongoose2.models.Relation || mongoose2.model("Relation", RelationTypeSchema);
165
+
166
+ // src/mongoose/global.ts
167
+ var MongooseSchema3 = mongoose3.Schema;
168
+ var OwnerTypeSchema = new MongooseSchema3(
169
+ {
170
+ email: { required: true, type: String },
171
+ userId: {
172
+ ref: "User",
173
+ required: true,
174
+ type: mongoose3.Schema.Types.ObjectId
175
+ }
176
+ },
177
+ { _id: false }
178
+ // Prevents Mongoose from creating an additional _id field for subdocuments
179
+ );
180
+ var SocialMediaTypeSchema = new MongooseSchema3(
181
+ {
182
+ link: { required: true, type: String },
183
+ name: { required: true, type: String }
184
+ },
185
+ { _id: false }
186
+ // Prevents Mongoose from creating an additional _id field
187
+ );
188
+ var ResourceImageTypeSchema = new MongooseSchema3(
189
+ {
190
+ source: { required: false, type: String },
191
+ title: { required: false, type: String }
192
+ },
193
+ { _id: false }
194
+ // Prevents Mongoose from creating an additional _id field for subdocuments
195
+ );
196
+ var SubCategorySchema = new MongooseSchema3(
197
+ {
198
+ id: { required: false, type: String },
199
+ items: [
200
+ {
201
+ id: { required: false, type: String },
202
+ name: { required: false, type: String }
203
+ }
204
+ ],
205
+ name: { required: false, type: String }
206
+ },
207
+ { _id: false }
208
+ // Prevents Mongoose from creating an additional _id field for subdocuments
209
+ );
210
+ var CategorySchema = new MongooseSchema3(
211
+ {
212
+ id: { required: true, type: String },
213
+ name: { required: true, type: String },
214
+ subcategories: [SubCategorySchema]
215
+ },
216
+ { _id: false }
217
+ // Prevents Mongoose from creating an additional _id field for subdocuments
218
+ );
219
+ var PosterUsageTypeSchema = new MongooseSchema3(
220
+ {
221
+ count: { default: 0, required: false, type: Number },
222
+ month: { required: false, type: String }
223
+ },
224
+ { _id: false }
225
+ // Prevents Mongoose from creating an additional _id field for subdocuments
226
+ );
227
+ var partnersSchema = new MongooseSchema3(
228
+ {
229
+ email: { required: false, type: String },
230
+ licence: {
231
+ enum: Object.values(EnumUserLicence),
232
+ required: false,
233
+ type: String
234
+ },
235
+ resourceId: {
236
+ required: false,
237
+ type: String
238
+ },
239
+ resourceType: {
240
+ enum: Object.values(EnumResourceType2),
241
+ required: false,
242
+ type: String
243
+ }
244
+ },
245
+ { _id: false }
246
+ // Prevents Mongoose from creating an additional _id field for subdocuments
247
+ );
248
+ var ContactDetailsSchema = new MongooseSchema3(
249
+ {
250
+ email: { required: false, type: String },
251
+ landlinePhone: { required: false, type: String },
252
+ mobilePhone: { required: false, type: String }
253
+ },
254
+ { _id: false }
255
+ // Prevents Mongoose from creating an additional _id field for subdocuments
256
+ );
257
+ var termsAgreementSchema = new MongooseSchema3(
258
+ {
259
+ appBuildNumber: { required: true, type: String },
260
+ appId: { required: true, type: String },
261
+ appVersion: { required: true, type: String },
262
+ brand: { required: true, type: String },
263
+ deviceName: { required: true, type: String },
264
+ installationId: { required: true, type: String },
265
+ manufacturer: { required: true, type: String },
266
+ modelName: { required: true, type: String },
267
+ osName: { required: true, type: String },
268
+ osVersion: { required: true, type: String },
269
+ termVersion: { required: true, type: String },
270
+ timestamp: { required: true, type: String }
271
+ },
272
+ { _id: false }
273
+ );
274
+ var resourceRelationsSchema = new MongooseSchema3(
275
+ {
276
+ relationDates: {
277
+ default: [],
278
+ required: false,
279
+ type: [relationDatesSchema]
280
+ },
281
+ relationId: {
282
+ ref: "Relation",
283
+ required: false,
284
+ type: mongoose3.Schema.Types.ObjectId
285
+ }
286
+ },
287
+ { _id: false }
288
+ );
289
+ var baseResourceFields = {
290
+ active: { default: false, required: true, type: Boolean },
291
+ adIds: {
292
+ ref: "Ad",
293
+ required: false,
294
+ type: [mongoose3.Schema.Types.ObjectId]
295
+ },
296
+ contactDetails: ContactDetailsSchema,
297
+ cover: ResourceImageTypeSchema,
298
+ deletedAt: { default: null, required: false, type: Date },
299
+ description: { required: true, type: String },
300
+ images: [ResourceImageTypeSchema],
301
+ logo: ResourceImageTypeSchema,
302
+ name: { required: true, type: String },
303
+ owner: OwnerTypeSchema,
304
+ partners: {
305
+ required: false,
306
+ type: [partnersSchema]
307
+ },
308
+ posterUsage: PosterUsageTypeSchema,
309
+ promoCodes: { required: false, type: [String] },
310
+ region: { required: true, type: String },
311
+ relations: {
312
+ default: [],
313
+ required: false,
314
+ type: [resourceRelationsSchema]
315
+ },
316
+ socialMedia: [SocialMediaTypeSchema],
317
+ termsAgreement: termsAgreementSchema
318
+ };
319
+
320
+ // src/mongoose/Ad.ts
321
+ var MongooseSchema4 = mongoose4.Schema;
322
+ var schema2 = new MongooseSchema4(
323
+ {
324
+ active: { default: true, type: Boolean },
325
+ adStyle: {
326
+ default: EnumAdStyle.BLOOM,
327
+ enum: Object.values(EnumAdStyle),
328
+ required: true,
329
+ type: String
330
+ },
331
+ adType: {
332
+ default: EnumAdType.SPONSORED,
333
+ enum: Object.values(EnumAdType),
334
+ required: true,
335
+ type: String
336
+ },
337
+ // TODO: similar to ViewSchema
338
+ clicks: { default: 0, required: true, type: Number },
339
+ clui: { required: false, type: String },
340
+ end: { required: true, type: Date },
341
+ // TODO: similar to ViewSchema
342
+ impressions: { default: 0, required: true, type: Number },
343
+ resourceCover: { required: true, type: String },
344
+ resourceDescription: { required: true, type: String },
345
+ resourceId: { required: true, type: String },
346
+ resourceLogo: { required: false, type: String },
347
+ resourceName: { required: true, type: String },
348
+ resourceRegion: { required: true, type: String },
349
+ resourceType: {
350
+ enum: Object.values(EnumResourceType3),
351
+ required: true,
352
+ type: String
353
+ },
354
+ showOn: {
355
+ default: EnumAdShowOn.FRONT_PAGE,
356
+ enum: Object.values(EnumAdShowOn),
357
+ required: true,
358
+ type: String
359
+ },
360
+ socialMedia: [SocialMediaTypeSchema],
361
+ start: { required: true, type: Date },
362
+ status: {
363
+ default: EnumAdStatus.ACTIVE,
364
+ enum: Object.values(EnumAdStatus),
365
+ required: true,
366
+ type: String
367
+ },
368
+ targetRegion: { required: false, type: String }
369
+ },
370
+ {
371
+ timestamps: true
372
+ }
373
+ );
374
+ schema2.index({
375
+ end: 1,
376
+ start: 1,
377
+ status: 1
378
+ });
379
+ var AdModel = mongoose4.models.Ad || mongoose4.model("Ad", schema2);
380
+
381
+ // src/mongoose/Chat.ts
382
+ import {
383
+ EnumChatType
384
+ } from "@timardex/cluemart-shared";
385
+ import mongoose5 from "mongoose";
386
+ var MongooseSchema5 = mongoose5.Schema;
387
+ var MessageSchema = new MongooseSchema5(
388
+ {
389
+ content: { required: true, type: String },
390
+ senderAvatar: { required: false, type: String },
391
+ senderId: {
392
+ ref: "User",
393
+ required: true,
394
+ type: mongoose5.Schema.Types.ObjectId
395
+ },
396
+ senderName: { required: true, type: String }
397
+ },
398
+ { timestamps: true }
399
+ );
400
+ var ParticipantSchema = new MongooseSchema5(
401
+ {
402
+ active: { default: true, required: true, type: Boolean },
403
+ email: { required: true, type: String },
404
+ userId: {
405
+ ref: "User",
406
+ required: true,
407
+ type: mongoose5.Schema.Types.ObjectId
408
+ }
409
+ },
410
+ { _id: false }
411
+ // Prevents Mongoose from creating an additional _id field for subdocuments
412
+ );
413
+ var ChatSchema = new MongooseSchema5(
414
+ {
415
+ active: { default: true, required: true, type: Boolean },
416
+ chatName: { required: true, type: String },
417
+ chatType: {
418
+ enum: Object.values(EnumChatType),
419
+ required: true,
420
+ type: String
421
+ },
422
+ deletedAt: { default: null, required: false, type: Date },
423
+ messages: [MessageSchema],
424
+ participants: [ParticipantSchema],
425
+ resourceInfo: {
426
+ eventId: {
427
+ ref: "Event",
428
+ required: false,
429
+ type: mongoose5.Schema.Types.ObjectId
430
+ },
431
+ vendorId: {
432
+ ref: "Vendor",
433
+ required: false,
434
+ type: mongoose5.Schema.Types.ObjectId
435
+ }
436
+ }
437
+ },
438
+ {
439
+ timestamps: true
440
+ }
441
+ );
442
+ var ChatModel = mongoose5.models.Chat || mongoose5.model("Chat", ChatSchema);
443
+
444
+ // src/mongoose/ResourceActivity.ts
445
+ import {
446
+ EnumActivity,
447
+ EnumOSPlatform,
448
+ EnumResourceType as EnumResourceType4
449
+ } from "@timardex/cluemart-shared";
450
+ import mongoose6 from "mongoose";
451
+ var MongooseSchema6 = mongoose6.Schema;
452
+ var ActivitySchema = new MongooseSchema6(
453
+ {
454
+ activityType: {
455
+ enum: Object.values(EnumActivity),
456
+ required: true,
457
+ type: String
458
+ },
459
+ location: {
460
+ coordinates: {
461
+ required: false,
462
+ type: [Number]
463
+ },
464
+ type: {
465
+ default: "Point",
466
+ enum: ["Point"],
467
+ required: false,
468
+ type: String
469
+ }
470
+ },
471
+ startDate: { required: false, type: String },
472
+ startTime: { required: false, type: String },
473
+ timestamp: { default: Date.now, type: Date },
474
+ userAgent: {
475
+ enum: Object.values(EnumOSPlatform),
476
+ required: true,
477
+ type: String
478
+ },
479
+ userId: { required: false, type: String }
480
+ },
481
+ { _id: false }
482
+ );
483
+ var schema3 = new MongooseSchema6(
484
+ {
485
+ activity: { default: [], type: [ActivitySchema] },
486
+ resourceId: { required: true, type: String },
487
+ resourceType: {
488
+ enum: Object.values(EnumResourceType4),
489
+ required: true,
490
+ type: String
491
+ }
492
+ },
493
+ { timestamps: true }
494
+ );
495
+ schema3.index({ resourceId: 1, resourceType: 1 }, { unique: true });
496
+ schema3.index({ "views.location": "2dsphere" });
497
+ var ResourceActivityModel = mongoose6.models.ResourceActivity || mongoose6.model("ResourceActivity", schema3);
498
+
499
+ // src/mongoose/Testers.ts
500
+ import {
501
+ EnumOSPlatform as EnumOSPlatform2,
502
+ EnumResourceType as EnumResourceType5
503
+ } from "@timardex/cluemart-shared";
504
+ import mongoose7 from "mongoose";
505
+ var MongooseSchema7 = mongoose7.Schema;
506
+ var TesterSchema = new MongooseSchema7(
507
+ {
508
+ active: { default: false, required: true, type: Boolean },
509
+ categories: [CategorySchema],
510
+ companyName: { required: true, type: String },
511
+ email: { required: true, type: String },
512
+ firstName: { required: true, type: String },
513
+ lastName: { required: true, type: String },
514
+ osType: {
515
+ enum: Object.values(EnumOSPlatform2),
516
+ required: true,
517
+ type: String
518
+ },
519
+ region: { required: true, type: String },
520
+ resourceType: {
521
+ enum: Object.values(EnumResourceType5),
522
+ required: true,
523
+ type: String
524
+ }
525
+ },
526
+ {
527
+ timestamps: true
528
+ }
529
+ );
530
+ var TesterModel = mongoose7.models.Tester || mongoose7.model("Tester", TesterSchema);
531
+
532
+ // src/mongoose/User.ts
533
+ import {
534
+ EnumOSPlatform as EnumOSPlatform3,
535
+ EnumUserLicence as EnumUserLicence2,
536
+ EnumUserRole
537
+ } from "@timardex/cluemart-shared";
538
+ import mongoose8 from "mongoose";
539
+ var MongooseSchema8 = mongoose8.Schema;
540
+ var userActivityEventSchema = new MongooseSchema8(
541
+ {
542
+ resourceId: {
543
+ ref: "Event",
544
+ required: false,
545
+ type: mongoose8.Schema.Types.ObjectId
546
+ },
547
+ startDate: { required: false, type: String },
548
+ startTime: { required: false, type: String }
549
+ },
550
+ { _id: false }
551
+ );
552
+ var userActivityFavouritesSchema = new MongooseSchema8(
553
+ {
554
+ events: {
555
+ ref: "Event",
556
+ required: false,
557
+ type: [mongoose8.Schema.Types.ObjectId]
558
+ },
559
+ vendors: {
560
+ ref: "Vendor",
561
+ required: false,
562
+ type: [mongoose8.Schema.Types.ObjectId]
563
+ }
564
+ },
565
+ { _id: false }
566
+ );
567
+ var schema4 = new MongooseSchema8(
568
+ {
569
+ active: { default: false, required: true, type: Boolean },
570
+ avatar: ResourceImageTypeSchema,
571
+ deletedAt: { default: null, required: false, type: Date },
572
+ email: { required: true, type: String },
573
+ events: {
574
+ ref: "Event",
575
+ required: false,
576
+ type: [mongoose8.Schema.Types.ObjectId]
577
+ },
578
+ firstName: { required: true, type: String },
579
+ isTester: { default: false, required: false, type: Boolean },
580
+ lastName: { required: true, type: String },
581
+ licences: {
582
+ enum: Object.values(EnumUserLicence2),
583
+ required: false,
584
+ type: [String]
585
+ },
586
+ partners: {
587
+ required: false,
588
+ type: [partnersSchema]
589
+ },
590
+ password: { required: true, type: String },
591
+ platform: {
592
+ enum: Object.values(EnumOSPlatform3),
593
+ required: false,
594
+ type: String
595
+ },
596
+ preferredRegion: {
597
+ required: true,
598
+ type: String
599
+ },
600
+ refreshToken: {
601
+ required: false,
602
+ type: String
603
+ },
604
+ role: {
605
+ default: EnumUserRole.CUSTOMER,
606
+ enum: Object.values(EnumUserRole),
607
+ required: true,
608
+ type: String
609
+ },
610
+ termsAgreement: termsAgreementSchema,
611
+ userActivity: {
612
+ favourites: {
613
+ default: () => ({ events: [], vendors: [] }),
614
+ type: userActivityFavouritesSchema
615
+ },
616
+ going: {
617
+ events: [userActivityEventSchema]
618
+ },
619
+ interested: {
620
+ events: [userActivityEventSchema]
621
+ },
622
+ present: {
623
+ events: [userActivityEventSchema]
624
+ }
625
+ },
626
+ vendor: {
627
+ ref: "Vendor",
628
+ required: false,
629
+ type: mongoose8.Schema.Types.ObjectId
630
+ }
631
+ },
632
+ { timestamps: true }
633
+ );
634
+ schema4.index({ "partners.email": 1 });
635
+ var UserModel = mongoose8.models.User || mongoose8.model("User", schema4);
636
+
637
+ // src/mongoose/VerificationToken.ts
638
+ import mongoose9 from "mongoose";
639
+ var MongooseSchema9 = mongoose9.Schema;
640
+ var schema5 = new MongooseSchema9(
641
+ {
642
+ createdAt: {
643
+ default: Date.now,
644
+ expires: 24 * 60 * 60,
645
+ // 24 hours in seconds (MongoDB TTL expects seconds)
646
+ required: true,
647
+ type: Date
648
+ },
649
+ // Token expires after 1 day
650
+ email: { required: true, type: String },
651
+ verificationToken: { required: true, type: String }
652
+ },
653
+ { timestamps: true }
654
+ );
655
+ var VerificationTokenModel = mongoose9.models.VerificationToken || mongoose9.model("VerificationToken", schema5);
656
+
657
+ // src/mongoose/vendor/Vendor.ts
658
+ import {
659
+ EnumVendorType
660
+ } from "@timardex/cluemart-shared";
661
+ import mongoose10 from "mongoose";
662
+ var MongooseSchema10 = mongoose10.Schema;
663
+ var MenuTypeSchema = new MongooseSchema10(
664
+ {
665
+ description: { required: false, type: String },
666
+ name: { required: false, type: String },
667
+ price: { required: false, type: Number },
668
+ productGroups: { required: false, type: [String] }
669
+ },
670
+ { _id: false }
671
+ // Prevents Mongoose from creating an additional _id field for subdocuments
672
+ );
673
+ var LocationsSchema = new MongooseSchema10(
674
+ {
675
+ dateTime: {
676
+ endDate: { required: false, type: String },
677
+ endTime: { required: false, type: String },
678
+ startDate: { required: false, type: String },
679
+ startTime: { required: false, type: String }
680
+ },
681
+ description: { required: false, type: String },
682
+ location: {
683
+ city: { required: false, type: String },
684
+ coordinates: {
685
+ required: false,
686
+ type: [Number]
687
+ // [longitude, latitude]
688
+ },
689
+ country: { required: false, type: String },
690
+ fullAddress: { required: false, type: String },
691
+ latitude: { required: false, type: Number },
692
+ longitude: { required: false, type: Number },
693
+ region: { required: false, type: String },
694
+ type: { required: false, type: String }
695
+ // Mongoose GeoJSON type
696
+ }
697
+ },
698
+ { _id: false }
699
+ // Prevents Mongoose from creating an additional _id field for subdocuments
700
+ );
701
+ var schema6 = new MongooseSchema10(
702
+ {
703
+ ...baseResourceFields,
704
+ // Importing base resource fields from global.ts
705
+ availability: {
706
+ corporate: { default: false, required: false, type: Boolean },
707
+ private: { default: false, required: false, type: Boolean },
708
+ school: { default: false, required: false, type: Boolean }
709
+ },
710
+ categories: [CategorySchema],
711
+ locations: [LocationsSchema],
712
+ multiLocation: { required: true, type: Boolean },
713
+ products: [MenuTypeSchema],
714
+ vendorInfoId: {
715
+ ref: "VendorInfo",
716
+ required: false,
717
+ type: mongoose10.Schema.Types.ObjectId
718
+ },
719
+ vendorType: {
720
+ enum: Object.values(EnumVendorType),
721
+ required: true,
722
+ type: String
723
+ }
724
+ },
725
+ { timestamps: true }
726
+ );
727
+ schema6.index({ name: 1 });
728
+ schema6.index({ description: 1 });
729
+ schema6.index({ region: 1 });
730
+ schema6.index({ "categories.name": 1 });
731
+ schema6.index({ "partners.email": 1 });
732
+ var VendorModel = mongoose10.models.Vendor || mongoose10.model("Vendor", schema6);
733
+
734
+ // src/mongoose/vendor/VendorInfo.ts
735
+ import {
736
+ EnumFoodFlavor
737
+ } from "@timardex/cluemart-shared";
738
+ import mongoose11 from "mongoose";
739
+ var MongooseSchema11 = mongoose11.Schema;
740
+ var AttributesSchema = new MongooseSchema11(
741
+ {
742
+ details: { required: false, type: String },
743
+ isRequired: { default: false, required: true, type: Boolean }
744
+ },
745
+ { _id: false }
746
+ );
747
+ var schema7 = new MongooseSchema11(
748
+ {
749
+ compliance: {
750
+ foodBeverageLicense: { default: false, required: false, type: Boolean },
751
+ liabilityInsurance: { default: false, required: false, type: Boolean }
752
+ },
753
+ documents: [ResourceImageTypeSchema],
754
+ product: {
755
+ foodFlavors: {
756
+ enum: Object.values(EnumFoodFlavor),
757
+ required: true,
758
+ type: [String]
759
+ },
760
+ packaging: { required: true, type: [String] },
761
+ priceRange: {
762
+ max: { required: true, type: Number },
763
+ min: { required: true, type: Number }
764
+ },
765
+ producedIn: { required: true, type: [String] }
766
+ },
767
+ requirements: {
768
+ electricity: AttributesSchema,
769
+ gazebo: AttributesSchema,
770
+ table: AttributesSchema
771
+ },
772
+ stallInfo: {
773
+ size: {
774
+ depth: { required: true, type: Number },
775
+ width: { required: true, type: Number }
776
+ }
777
+ },
778
+ vendorId: {
779
+ ref: "Vendor",
780
+ required: true,
781
+ type: mongoose11.Schema.Types.ObjectId
782
+ }
783
+ },
784
+ { timestamps: true }
785
+ );
786
+ var VendorInfoModel = mongoose11.models.VendorInfo || mongoose11.model("VendorInfo", schema7);
787
+
788
+ // src/mongoose/event/Event.ts
789
+ import {
790
+ EnumEventType
791
+ } from "@timardex/cluemart-shared";
792
+ import mongoose12 from "mongoose";
793
+ var MongooseSchema12 = mongoose12.Schema;
794
+ var locationsSchema = new MongooseSchema12(
795
+ {
796
+ city: { required: true, type: String },
797
+ coordinates: {
798
+ required: true,
799
+ type: [Number]
800
+ // [longitude, latitude]
801
+ },
802
+ country: { required: true, type: String },
803
+ fullAddress: { required: true, type: String },
804
+ latitude: { required: true, type: Number },
805
+ longitude: { required: true, type: Number },
806
+ region: { required: true, type: String },
807
+ type: {
808
+ default: "Point",
809
+ enum: ["Point"],
810
+ required: true,
811
+ type: String
812
+ }
813
+ },
814
+ { _id: false }
815
+ // Prevents Mongoose from creating an additional _id field for subdocuments
816
+ );
817
+ var dateTimeSchema2 = new MongooseSchema12(
818
+ {
819
+ endDate: { required: true, type: String },
820
+ endTime: { required: true, type: String },
821
+ startDate: { required: true, type: String },
822
+ startTime: { required: true, type: String }
823
+ },
824
+ { _id: false }
825
+ // Prevents Mongoose from creating an additional _id field for subdocuments
826
+ );
827
+ var schema8 = new MongooseSchema12(
828
+ {
829
+ ...baseResourceFields,
830
+ // Importing base resource fields from global.ts
831
+ dateTime: [dateTimeSchema2],
832
+ eventInfoId: {
833
+ ref: "EventInfo",
834
+ required: false,
835
+ type: mongoose12.Schema.Types.ObjectId
836
+ },
837
+ eventType: {
838
+ enum: Object.values(EnumEventType),
839
+ required: true,
840
+ type: String
841
+ },
842
+ location: {
843
+ required: true,
844
+ type: locationsSchema
845
+ },
846
+ nzbn: { required: true, type: String },
847
+ provider: { required: false, type: String },
848
+ rainOrShine: { required: true, type: Boolean },
849
+ tags: { required: true, type: [String] }
850
+ },
851
+ { timestamps: true }
852
+ );
853
+ schema8.index({ name: 1 });
854
+ schema8.index({ description: 1 });
855
+ schema8.index({ region: 1 });
856
+ schema8.index({ location: "2dsphere" });
857
+ schema8.index({ tags: 1 });
858
+ schema8.index({ "partners.email": 1 });
859
+ var EventModel = mongoose12.models.Event || mongoose12.model("Event", schema8);
860
+ export {
861
+ AdModel,
862
+ CategorySchema,
863
+ ChatModel,
864
+ EventInfoModel,
865
+ EventModel,
866
+ NotificationModel,
867
+ ParticipantSchema,
868
+ PushTokenModel,
869
+ RelationModel,
870
+ RelationTypeSchema,
871
+ ResourceActivityModel,
872
+ ResourceImageTypeSchema,
873
+ SocialMediaTypeSchema,
874
+ StallTypeSchema,
875
+ TesterModel,
876
+ UserModel,
877
+ VendorInfoModel,
878
+ VendorModel,
879
+ VerificationTokenModel,
880
+ baseResourceFields,
881
+ partnersSchema,
882
+ relationDatesSchema,
883
+ termsAgreementSchema
884
+ };
885
+ //# sourceMappingURL=index.mjs.map