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