@timardex/cluemart-shared 1.2.28 → 1.2.29
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/ad-Crq-z5Wt.d.mts +69 -0
- package/dist/ad-DHetF-th.d.ts +69 -0
- package/dist/{auth-Ddkaba1k.d.mts → auth-Ci6Uskch.d.mts} +1 -1
- package/dist/{auth-BRY-YJss.d.ts → auth-CzEdRDf1.d.ts} +1 -1
- package/dist/chunk-BO3HICLR.mjs +24 -0
- package/dist/chunk-BO3HICLR.mjs.map +1 -0
- package/dist/chunk-CQ7TCXMI.mjs +68 -0
- package/dist/chunk-CQ7TCXMI.mjs.map +1 -0
- package/dist/formFields/index.d.mts +1 -1
- package/dist/formFields/index.d.ts +1 -1
- package/dist/{global-IDogsFQv.d.ts → global-2Jk7sRkL.d.ts} +18 -4
- package/dist/{global-DlaX2SCk.d.mts → global-DWuTxnJ8.d.mts} +18 -4
- package/dist/graphql/index.d.mts +3 -2
- package/dist/graphql/index.d.ts +3 -2
- package/dist/hooks/index.d.mts +4 -3
- package/dist/hooks/index.d.ts +4 -3
- package/dist/hooks/index.mjs +5 -5
- package/dist/index.cjs +1130 -26
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +347 -2
- package/dist/index.d.ts +347 -2
- package/dist/index.mjs +1116 -26
- package/dist/index.mjs.map +1 -1
- package/dist/mongoose/index.cjs +1068 -0
- package/dist/mongoose/index.cjs.map +1 -0
- package/dist/mongoose/index.d.mts +318 -0
- package/dist/mongoose/index.d.ts +318 -0
- package/dist/mongoose/index.mjs +855 -0
- package/dist/mongoose/index.mjs.map +1 -0
- package/dist/service/index.cjs +336 -0
- package/dist/service/index.cjs.map +1 -0
- package/dist/service/index.d.mts +27 -0
- package/dist/service/index.d.ts +27 -0
- package/dist/service/index.mjs +214 -0
- package/dist/service/index.mjs.map +1 -0
- package/dist/types/index.d.mts +4 -3
- package/dist/types/index.d.ts +4 -3
- package/dist/types/index.mjs +4 -19
- package/dist/types/index.mjs.map +1 -1
- package/dist/user-DbEEY7fv.d.ts +64 -0
- package/dist/user-OPY5EOqR.d.mts +64 -0
- package/dist/utils/index.d.mts +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/package.json +1 -1
- package/dist/ad-C-0i99zR.d.mts +0 -129
- package/dist/ad-ZnPU3uan.d.ts +0 -129
package/dist/index.cjs
CHANGED
|
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/index.ts
|
|
31
31
|
var index_exports = {};
|
|
32
32
|
__export(index_exports, {
|
|
33
|
+
CategorySchema: () => CategorySchema,
|
|
33
34
|
EnumActivity: () => EnumActivity,
|
|
34
35
|
EnumAdShowOn: () => EnumAdShowOn,
|
|
35
36
|
EnumAdStatus: () => EnumAdStatus,
|
|
@@ -52,20 +53,28 @@ __export(index_exports, {
|
|
|
52
53
|
EnumUserRole: () => EnumUserRole,
|
|
53
54
|
EnumVendorType: () => EnumVendorType,
|
|
54
55
|
ImageTypeEnum: () => ImageTypeEnum,
|
|
56
|
+
ParticipantSchema: () => ParticipantSchema,
|
|
57
|
+
RelationTypeSchema: () => RelationTypeSchema,
|
|
58
|
+
ResourceImageTypeSchema: () => ResourceImageTypeSchema,
|
|
55
59
|
SAVED_EMAIL_KEY: () => SAVED_EMAIL_KEY,
|
|
56
60
|
SAVED_PASSWORD_KEY: () => SAVED_PASSWORD_KEY,
|
|
57
61
|
SAVED_REFRESH_TOKEN_KEY: () => SAVED_REFRESH_TOKEN_KEY,
|
|
58
62
|
SAVED_TOKEN_KEY: () => SAVED_TOKEN_KEY,
|
|
63
|
+
SocialMediaTypeSchema: () => SocialMediaTypeSchema,
|
|
64
|
+
StallTypeSchema: () => StallTypeSchema,
|
|
59
65
|
USER_STORAGE_KEY: () => USER_STORAGE_KEY,
|
|
60
66
|
availableCategories: () => availableCategories,
|
|
61
67
|
availableCityOptions: () => availableCityOptions,
|
|
62
68
|
availableRegionOptions: () => availableRegionOptions,
|
|
63
69
|
availableRegionTypes: () => availableRegionTypes,
|
|
64
70
|
availableTagTypes: () => availableTagTypes,
|
|
71
|
+
baseResourceFields: () => baseResourceFields,
|
|
65
72
|
capitalizeFirstLetter: () => capitalizeFirstLetter,
|
|
66
73
|
categoryColors: () => categoryColors,
|
|
67
74
|
companyContactFields: () => companyContactFields,
|
|
75
|
+
connectToDatabase: () => connectToDatabase,
|
|
68
76
|
contactUsFields: () => contactUsFields,
|
|
77
|
+
createNotifications: () => createNotifications,
|
|
69
78
|
darkColors: () => darkColors,
|
|
70
79
|
dateFormat: () => dateFormat,
|
|
71
80
|
defaultEventFormValues: () => defaultEventFormValues,
|
|
@@ -92,20 +101,25 @@ __export(index_exports, {
|
|
|
92
101
|
mapBaseResourceTypeToFormData: () => mapBaseResourceTypeToFormData,
|
|
93
102
|
normalizeUrl: () => normalizeUrl,
|
|
94
103
|
packagingOptions: () => packagingOptions,
|
|
104
|
+
partnersSchema: () => partnersSchema,
|
|
95
105
|
paymentMethodOptions: () => paymentMethodOptions,
|
|
96
106
|
producedIngOptions: () => producedIngOptions,
|
|
97
107
|
productLabelGroups: () => productLabelGroups,
|
|
98
108
|
profileFields: () => profileFields,
|
|
109
|
+
publishNotificationEvents: () => publishNotificationEvents,
|
|
99
110
|
registerFields: () => registerFields,
|
|
111
|
+
relationDatesSchema: () => relationDatesSchema,
|
|
100
112
|
removeTypename: () => removeTypename,
|
|
101
113
|
requestPasswordResetFields: () => requestPasswordResetFields,
|
|
102
114
|
requirementsOptions: () => requirementsOptions,
|
|
103
115
|
resetPasswordFields: () => resetPasswordFields,
|
|
116
|
+
sendPushNotification: () => sendPushNotification,
|
|
104
117
|
socialMediaFields: () => socialMediaFields,
|
|
105
118
|
sortDatesChronologically: () => sortDatesChronologically,
|
|
106
119
|
stallTypeOptions: () => stallTypeOptions,
|
|
107
120
|
statusOptions: () => statusOptions,
|
|
108
121
|
tagOptions: () => tagOptions,
|
|
122
|
+
termsAgreementSchema: () => termsAgreementSchema,
|
|
109
123
|
testersFields: () => testersFields,
|
|
110
124
|
timeFormat: () => timeFormat,
|
|
111
125
|
truncateText: () => truncateText,
|
|
@@ -4930,7 +4944,7 @@ var socialMediaSchema = yup.object({
|
|
|
4930
4944
|
is: (name) => !!name,
|
|
4931
4945
|
// If name has a value
|
|
4932
4946
|
then: () => normalizedUrlTransform().required("Link is required when name is set").url("Link must be a valid URL").label("Social Media Link"),
|
|
4933
|
-
otherwise: (
|
|
4947
|
+
otherwise: (schema11) => schema11.notRequired()
|
|
4934
4948
|
})
|
|
4935
4949
|
});
|
|
4936
4950
|
var globalResourceSchema = yup.object().shape({
|
|
@@ -5003,21 +5017,21 @@ var paymentInfoSchema = yup2.object({
|
|
|
5003
5017
|
paymentMethod: yup2.mixed().oneOf(Object.values(EnumPaymentMethod)).required("Please select a Payment method"),
|
|
5004
5018
|
accountHolderName: yup2.string().when("paymentMethod", {
|
|
5005
5019
|
is: "bank_transfer" /* BANK_TRANSFER */,
|
|
5006
|
-
then: (
|
|
5007
|
-
otherwise: (
|
|
5020
|
+
then: (schema11) => schema11.required("Account holder name is required for bank transfer").trim(),
|
|
5021
|
+
otherwise: (schema11) => schema11.notRequired()
|
|
5008
5022
|
}),
|
|
5009
5023
|
accountNumber: yup2.string().when("paymentMethod", {
|
|
5010
5024
|
is: "bank_transfer" /* BANK_TRANSFER */,
|
|
5011
|
-
then: (
|
|
5025
|
+
then: (schema11) => schema11.required("Account number is required for bank transfer").matches(
|
|
5012
5026
|
nzBankAccountRegex,
|
|
5013
5027
|
"Account number must be in format: XX-XXXX-XXXXXXX-XX"
|
|
5014
5028
|
).trim(),
|
|
5015
|
-
otherwise: (
|
|
5029
|
+
otherwise: (schema11) => schema11.notRequired()
|
|
5016
5030
|
}),
|
|
5017
5031
|
link: yup2.string().when("paymentMethod", {
|
|
5018
5032
|
is: (val) => val !== "bank_transfer" /* BANK_TRANSFER */,
|
|
5019
5033
|
then: () => normalizedUrlTransform().url("Link must be a valid URL").required("Link is required for PayPal/Stripe"),
|
|
5020
|
-
otherwise: (
|
|
5034
|
+
otherwise: (schema11) => schema11.notRequired()
|
|
5021
5035
|
})
|
|
5022
5036
|
});
|
|
5023
5037
|
var eventInfoSchema = yup2.object().shape({
|
|
@@ -5196,7 +5210,7 @@ var adSchema = yup7.object().shape({
|
|
|
5196
5210
|
return endDate > now;
|
|
5197
5211
|
}).when("start", {
|
|
5198
5212
|
is: (val) => val && val.length > 0,
|
|
5199
|
-
then: (
|
|
5213
|
+
then: (schema11) => schema11.test(
|
|
5200
5214
|
"is-after-start",
|
|
5201
5215
|
"End date must be after start date",
|
|
5202
5216
|
function(value) {
|
|
@@ -6166,6 +6180,1101 @@ function useAdForm(data) {
|
|
|
6166
6180
|
};
|
|
6167
6181
|
}
|
|
6168
6182
|
|
|
6183
|
+
// src/mongoose/Ad.ts
|
|
6184
|
+
var import_mongoose4 = __toESM(require("mongoose"));
|
|
6185
|
+
|
|
6186
|
+
// src/types/global.ts
|
|
6187
|
+
var EnumPubSubEvents = /* @__PURE__ */ ((EnumPubSubEvents2) => {
|
|
6188
|
+
EnumPubSubEvents2["GET_CHAT_MESSAGE"] = "GET_CHAT_MESSAGE";
|
|
6189
|
+
EnumPubSubEvents2["GET_NOTIFICATIONS"] = "GET_NOTIFICATIONS";
|
|
6190
|
+
EnumPubSubEvents2["GET_NOTIFICATIONS_COUNT"] = "GET_NOTIFICATIONS_COUNT";
|
|
6191
|
+
EnumPubSubEvents2["USER_TYPING"] = "USER_TYPING";
|
|
6192
|
+
return EnumPubSubEvents2;
|
|
6193
|
+
})(EnumPubSubEvents || {});
|
|
6194
|
+
|
|
6195
|
+
// src/types/resourceActivities.ts
|
|
6196
|
+
var EnumActivity = /* @__PURE__ */ ((EnumActivity2) => {
|
|
6197
|
+
EnumActivity2["FAVORITE"] = "FAVORITE";
|
|
6198
|
+
EnumActivity2["GOING"] = "GOING";
|
|
6199
|
+
EnumActivity2["INTERESTED"] = "INTERESTED";
|
|
6200
|
+
EnumActivity2["PRESENT"] = "PRESENT";
|
|
6201
|
+
EnumActivity2["VIEW"] = "VIEW";
|
|
6202
|
+
return EnumActivity2;
|
|
6203
|
+
})(EnumActivity || {});
|
|
6204
|
+
|
|
6205
|
+
// src/mongoose/global.ts
|
|
6206
|
+
var import_mongoose3 = __toESM(require("mongoose"));
|
|
6207
|
+
|
|
6208
|
+
// src/mongoose/Relation.ts
|
|
6209
|
+
var import_mongoose2 = __toESM(require("mongoose"));
|
|
6210
|
+
|
|
6211
|
+
// src/mongoose/event/EventInfo.ts
|
|
6212
|
+
var import_mongoose = __toESM(require("mongoose"));
|
|
6213
|
+
var MongooseSchema = import_mongoose.default.Schema;
|
|
6214
|
+
var StallTypeSchema = new MongooseSchema(
|
|
6215
|
+
{
|
|
6216
|
+
electricity: {
|
|
6217
|
+
price: { required: false, type: Number },
|
|
6218
|
+
selected: { required: false, type: Boolean }
|
|
6219
|
+
},
|
|
6220
|
+
label: { required: false, type: String },
|
|
6221
|
+
price: { required: false, type: Number },
|
|
6222
|
+
stallCapacity: { required: false, type: Number }
|
|
6223
|
+
},
|
|
6224
|
+
{
|
|
6225
|
+
_id: false
|
|
6226
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6227
|
+
}
|
|
6228
|
+
);
|
|
6229
|
+
var dateTimeSchema2 = new MongooseSchema(
|
|
6230
|
+
{
|
|
6231
|
+
endDate: { required: true, type: String },
|
|
6232
|
+
endTime: { required: true, type: String },
|
|
6233
|
+
stallTypes: [StallTypeSchema],
|
|
6234
|
+
startDate: { required: true, type: String },
|
|
6235
|
+
startTime: { required: true, type: String }
|
|
6236
|
+
},
|
|
6237
|
+
{ _id: false }
|
|
6238
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6239
|
+
);
|
|
6240
|
+
var paymentInfoSchema2 = new MongooseSchema(
|
|
6241
|
+
{
|
|
6242
|
+
accountHolderName: { required: false, type: String },
|
|
6243
|
+
accountNumber: { required: false, type: String },
|
|
6244
|
+
link: { required: false, type: String },
|
|
6245
|
+
paymentMethod: {
|
|
6246
|
+
enum: Object.values(EnumPaymentMethod),
|
|
6247
|
+
required: true,
|
|
6248
|
+
type: String
|
|
6249
|
+
}
|
|
6250
|
+
},
|
|
6251
|
+
{ _id: false }
|
|
6252
|
+
// Prevents Mongoose from creating an additional _id field
|
|
6253
|
+
);
|
|
6254
|
+
var requirementsSchema = new MongooseSchema(
|
|
6255
|
+
{
|
|
6256
|
+
category: { required: true, type: String },
|
|
6257
|
+
label: { required: true, type: String },
|
|
6258
|
+
value: { required: true, type: Boolean }
|
|
6259
|
+
},
|
|
6260
|
+
{
|
|
6261
|
+
_id: false
|
|
6262
|
+
// Prevents Mongoose from creating an additional _id field for
|
|
6263
|
+
}
|
|
6264
|
+
);
|
|
6265
|
+
var schema = new MongooseSchema(
|
|
6266
|
+
{
|
|
6267
|
+
applicationDeadlineHours: { required: true, type: Number },
|
|
6268
|
+
dateTime: [dateTimeSchema2],
|
|
6269
|
+
eventId: {
|
|
6270
|
+
ref: "Event",
|
|
6271
|
+
required: false,
|
|
6272
|
+
type: import_mongoose.default.Schema.Types.ObjectId
|
|
6273
|
+
},
|
|
6274
|
+
packInTime: { required: true, type: Number },
|
|
6275
|
+
paymentDueHours: { required: true, type: Number },
|
|
6276
|
+
paymentInfo: [paymentInfoSchema2],
|
|
6277
|
+
requirements: [requirementsSchema]
|
|
6278
|
+
},
|
|
6279
|
+
{ timestamps: true }
|
|
6280
|
+
);
|
|
6281
|
+
var EventInfoModel = import_mongoose.default.model("EventInfo", schema);
|
|
6282
|
+
|
|
6283
|
+
// src/mongoose/Relation.ts
|
|
6284
|
+
var MongooseSchema2 = import_mongoose2.default.Schema;
|
|
6285
|
+
var relationDatesSchema = new MongooseSchema2(
|
|
6286
|
+
{
|
|
6287
|
+
lastUpdateBy: {
|
|
6288
|
+
resourceId: { required: false, type: String },
|
|
6289
|
+
userEmail: { required: false, type: String }
|
|
6290
|
+
},
|
|
6291
|
+
paymentReference: { required: false, type: String },
|
|
6292
|
+
stallType: StallTypeSchema,
|
|
6293
|
+
startDate: { required: false, type: String },
|
|
6294
|
+
startTime: { required: false, type: String },
|
|
6295
|
+
status: {
|
|
6296
|
+
enum: Object.values(EnumInviteStatus),
|
|
6297
|
+
required: false,
|
|
6298
|
+
type: String
|
|
6299
|
+
}
|
|
6300
|
+
},
|
|
6301
|
+
{ _id: false }
|
|
6302
|
+
);
|
|
6303
|
+
var RelationTypeSchema = new MongooseSchema2(
|
|
6304
|
+
{
|
|
6305
|
+
active: { default: true, required: true, type: Boolean },
|
|
6306
|
+
chatId: {
|
|
6307
|
+
ref: "Chat",
|
|
6308
|
+
required: true,
|
|
6309
|
+
type: import_mongoose2.default.Schema.Types.ObjectId
|
|
6310
|
+
},
|
|
6311
|
+
deletedAt: { default: null, required: false, type: Date },
|
|
6312
|
+
eventId: {
|
|
6313
|
+
ref: "Event",
|
|
6314
|
+
required: true,
|
|
6315
|
+
type: import_mongoose2.default.Schema.Types.ObjectId
|
|
6316
|
+
},
|
|
6317
|
+
lastUpdateBy: {
|
|
6318
|
+
enum: Object.values(EnumResourceType),
|
|
6319
|
+
required: true,
|
|
6320
|
+
type: String
|
|
6321
|
+
},
|
|
6322
|
+
relationDates: [relationDatesSchema],
|
|
6323
|
+
relationType: {
|
|
6324
|
+
enum: Object.values(EnumRelationResource),
|
|
6325
|
+
required: true,
|
|
6326
|
+
type: String
|
|
6327
|
+
},
|
|
6328
|
+
vendorId: {
|
|
6329
|
+
ref: "Vendor",
|
|
6330
|
+
required: true,
|
|
6331
|
+
type: import_mongoose2.default.Schema.Types.ObjectId
|
|
6332
|
+
}
|
|
6333
|
+
},
|
|
6334
|
+
{ timestamps: true }
|
|
6335
|
+
);
|
|
6336
|
+
RelationTypeSchema.index({
|
|
6337
|
+
"relationDates.startDate": 1,
|
|
6338
|
+
"relationDates.startTime": 1,
|
|
6339
|
+
"relationDates.status": 1
|
|
6340
|
+
});
|
|
6341
|
+
var RelationModel = import_mongoose2.default.model(
|
|
6342
|
+
"Relation",
|
|
6343
|
+
RelationTypeSchema
|
|
6344
|
+
);
|
|
6345
|
+
|
|
6346
|
+
// src/mongoose/global.ts
|
|
6347
|
+
var MongooseSchema3 = import_mongoose3.default.Schema;
|
|
6348
|
+
var OwnerTypeSchema = new MongooseSchema3(
|
|
6349
|
+
{
|
|
6350
|
+
email: { required: true, type: String },
|
|
6351
|
+
userId: {
|
|
6352
|
+
ref: "User",
|
|
6353
|
+
required: true,
|
|
6354
|
+
type: import_mongoose3.default.Schema.Types.ObjectId
|
|
6355
|
+
}
|
|
6356
|
+
},
|
|
6357
|
+
{ _id: false }
|
|
6358
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6359
|
+
);
|
|
6360
|
+
var SocialMediaTypeSchema = new MongooseSchema3(
|
|
6361
|
+
{
|
|
6362
|
+
link: { required: true, type: String },
|
|
6363
|
+
name: { required: true, type: String }
|
|
6364
|
+
},
|
|
6365
|
+
{ _id: false }
|
|
6366
|
+
// Prevents Mongoose from creating an additional _id field
|
|
6367
|
+
);
|
|
6368
|
+
var ResourceImageTypeSchema = new MongooseSchema3(
|
|
6369
|
+
{
|
|
6370
|
+
source: { required: false, type: String },
|
|
6371
|
+
title: { required: false, type: String }
|
|
6372
|
+
},
|
|
6373
|
+
{ _id: false }
|
|
6374
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6375
|
+
);
|
|
6376
|
+
var SubCategorySchema = new MongooseSchema3(
|
|
6377
|
+
{
|
|
6378
|
+
id: { required: false, type: String },
|
|
6379
|
+
items: [
|
|
6380
|
+
{
|
|
6381
|
+
id: { required: false, type: String },
|
|
6382
|
+
name: { required: false, type: String }
|
|
6383
|
+
}
|
|
6384
|
+
],
|
|
6385
|
+
name: { required: false, type: String }
|
|
6386
|
+
},
|
|
6387
|
+
{ _id: false }
|
|
6388
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6389
|
+
);
|
|
6390
|
+
var CategorySchema = new MongooseSchema3(
|
|
6391
|
+
{
|
|
6392
|
+
id: { required: true, type: String },
|
|
6393
|
+
name: { required: true, type: String },
|
|
6394
|
+
subcategories: [SubCategorySchema]
|
|
6395
|
+
},
|
|
6396
|
+
{ _id: false }
|
|
6397
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6398
|
+
);
|
|
6399
|
+
var PosterUsageTypeSchema = new MongooseSchema3(
|
|
6400
|
+
{
|
|
6401
|
+
count: { default: 0, required: false, type: Number },
|
|
6402
|
+
month: { required: false, type: String }
|
|
6403
|
+
},
|
|
6404
|
+
{ _id: false }
|
|
6405
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6406
|
+
);
|
|
6407
|
+
var partnersSchema = new MongooseSchema3(
|
|
6408
|
+
{
|
|
6409
|
+
email: { required: false, type: String },
|
|
6410
|
+
licence: {
|
|
6411
|
+
enum: Object.values(EnumUserLicence),
|
|
6412
|
+
required: false,
|
|
6413
|
+
type: String
|
|
6414
|
+
},
|
|
6415
|
+
resourceId: {
|
|
6416
|
+
required: false,
|
|
6417
|
+
type: String
|
|
6418
|
+
},
|
|
6419
|
+
resourceType: {
|
|
6420
|
+
enum: Object.values(EnumResourceType),
|
|
6421
|
+
required: false,
|
|
6422
|
+
type: String
|
|
6423
|
+
}
|
|
6424
|
+
},
|
|
6425
|
+
{ _id: false }
|
|
6426
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6427
|
+
);
|
|
6428
|
+
var ContactDetailsSchema = new MongooseSchema3(
|
|
6429
|
+
{
|
|
6430
|
+
email: { required: false, type: String },
|
|
6431
|
+
landlinePhone: { required: false, type: String },
|
|
6432
|
+
mobilePhone: { required: false, type: String }
|
|
6433
|
+
},
|
|
6434
|
+
{ _id: false }
|
|
6435
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6436
|
+
);
|
|
6437
|
+
var termsAgreementSchema = new MongooseSchema3(
|
|
6438
|
+
{
|
|
6439
|
+
appBuildNumber: { required: true, type: String },
|
|
6440
|
+
appId: { required: true, type: String },
|
|
6441
|
+
appVersion: { required: true, type: String },
|
|
6442
|
+
brand: { required: true, type: String },
|
|
6443
|
+
deviceName: { required: true, type: String },
|
|
6444
|
+
installationId: { required: true, type: String },
|
|
6445
|
+
manufacturer: { required: true, type: String },
|
|
6446
|
+
modelName: { required: true, type: String },
|
|
6447
|
+
osName: { required: true, type: String },
|
|
6448
|
+
osVersion: { required: true, type: String },
|
|
6449
|
+
termVersion: { required: true, type: String },
|
|
6450
|
+
timestamp: { required: true, type: String }
|
|
6451
|
+
},
|
|
6452
|
+
{ _id: false }
|
|
6453
|
+
);
|
|
6454
|
+
var resourceRelationsSchema = new MongooseSchema3(
|
|
6455
|
+
{
|
|
6456
|
+
relationDates: {
|
|
6457
|
+
default: [],
|
|
6458
|
+
required: false,
|
|
6459
|
+
type: [relationDatesSchema]
|
|
6460
|
+
},
|
|
6461
|
+
relationId: {
|
|
6462
|
+
ref: "Relation",
|
|
6463
|
+
required: false,
|
|
6464
|
+
type: import_mongoose3.default.Schema.Types.ObjectId
|
|
6465
|
+
}
|
|
6466
|
+
},
|
|
6467
|
+
{ _id: false }
|
|
6468
|
+
);
|
|
6469
|
+
var baseResourceFields = {
|
|
6470
|
+
active: { default: false, required: true, type: Boolean },
|
|
6471
|
+
adIds: {
|
|
6472
|
+
ref: "Ad",
|
|
6473
|
+
required: false,
|
|
6474
|
+
type: [import_mongoose3.default.Schema.Types.ObjectId]
|
|
6475
|
+
},
|
|
6476
|
+
contactDetails: ContactDetailsSchema,
|
|
6477
|
+
cover: ResourceImageTypeSchema,
|
|
6478
|
+
deletedAt: { default: null, required: false, type: Date },
|
|
6479
|
+
description: { required: true, type: String },
|
|
6480
|
+
images: [ResourceImageTypeSchema],
|
|
6481
|
+
logo: ResourceImageTypeSchema,
|
|
6482
|
+
name: { required: true, type: String },
|
|
6483
|
+
owner: OwnerTypeSchema,
|
|
6484
|
+
partners: {
|
|
6485
|
+
required: false,
|
|
6486
|
+
type: [partnersSchema]
|
|
6487
|
+
},
|
|
6488
|
+
posterUsage: PosterUsageTypeSchema,
|
|
6489
|
+
promoCodes: { required: false, type: [String] },
|
|
6490
|
+
region: { required: true, type: String },
|
|
6491
|
+
relations: {
|
|
6492
|
+
default: [],
|
|
6493
|
+
required: false,
|
|
6494
|
+
type: [resourceRelationsSchema]
|
|
6495
|
+
},
|
|
6496
|
+
socialMedia: [SocialMediaTypeSchema],
|
|
6497
|
+
termsAgreement: termsAgreementSchema
|
|
6498
|
+
};
|
|
6499
|
+
|
|
6500
|
+
// src/mongoose/Ad.ts
|
|
6501
|
+
var MongooseSchema4 = import_mongoose4.default.Schema;
|
|
6502
|
+
var schema2 = new MongooseSchema4(
|
|
6503
|
+
{
|
|
6504
|
+
active: { default: true, type: Boolean },
|
|
6505
|
+
adStyle: {
|
|
6506
|
+
default: "Bloom" /* BLOOM */,
|
|
6507
|
+
enum: Object.values(EnumAdStyle),
|
|
6508
|
+
required: true,
|
|
6509
|
+
type: String
|
|
6510
|
+
},
|
|
6511
|
+
adType: {
|
|
6512
|
+
default: "Sponsored" /* SPONSORED */,
|
|
6513
|
+
enum: Object.values(EnumAdType),
|
|
6514
|
+
required: true,
|
|
6515
|
+
type: String
|
|
6516
|
+
},
|
|
6517
|
+
// TODO: similar to ViewSchema
|
|
6518
|
+
clicks: { default: 0, required: true, type: Number },
|
|
6519
|
+
clui: { required: false, type: String },
|
|
6520
|
+
end: { required: true, type: Date },
|
|
6521
|
+
// TODO: similar to ViewSchema
|
|
6522
|
+
impressions: { default: 0, required: true, type: Number },
|
|
6523
|
+
resourceCover: { required: true, type: String },
|
|
6524
|
+
resourceDescription: { required: true, type: String },
|
|
6525
|
+
resourceId: { required: true, type: String },
|
|
6526
|
+
resourceLogo: { required: false, type: String },
|
|
6527
|
+
resourceName: { required: true, type: String },
|
|
6528
|
+
resourceRegion: { required: true, type: String },
|
|
6529
|
+
resourceType: {
|
|
6530
|
+
enum: Object.values(EnumResourceType),
|
|
6531
|
+
required: true,
|
|
6532
|
+
type: String
|
|
6533
|
+
},
|
|
6534
|
+
showOn: {
|
|
6535
|
+
default: "Front_page" /* FRONT_PAGE */,
|
|
6536
|
+
enum: Object.values(EnumAdShowOn),
|
|
6537
|
+
required: true,
|
|
6538
|
+
type: String
|
|
6539
|
+
},
|
|
6540
|
+
socialMedia: [SocialMediaTypeSchema],
|
|
6541
|
+
start: { required: true, type: Date },
|
|
6542
|
+
status: {
|
|
6543
|
+
default: "Active" /* ACTIVE */,
|
|
6544
|
+
enum: Object.values(EnumAdStatus),
|
|
6545
|
+
required: true,
|
|
6546
|
+
type: String
|
|
6547
|
+
},
|
|
6548
|
+
targetRegion: { required: false, type: String }
|
|
6549
|
+
},
|
|
6550
|
+
{
|
|
6551
|
+
timestamps: true
|
|
6552
|
+
}
|
|
6553
|
+
);
|
|
6554
|
+
schema2.index({
|
|
6555
|
+
end: 1,
|
|
6556
|
+
start: 1,
|
|
6557
|
+
status: 1
|
|
6558
|
+
});
|
|
6559
|
+
var AdModel = import_mongoose4.default.model("Ad", schema2);
|
|
6560
|
+
|
|
6561
|
+
// src/mongoose/Chat.ts
|
|
6562
|
+
var import_mongoose5 = __toESM(require("mongoose"));
|
|
6563
|
+
var MongooseSchema5 = import_mongoose5.default.Schema;
|
|
6564
|
+
var MessageSchema = new MongooseSchema5(
|
|
6565
|
+
{
|
|
6566
|
+
content: { required: true, type: String },
|
|
6567
|
+
senderAvatar: { required: false, type: String },
|
|
6568
|
+
senderId: {
|
|
6569
|
+
ref: "User",
|
|
6570
|
+
required: true,
|
|
6571
|
+
type: import_mongoose5.default.Schema.Types.ObjectId
|
|
6572
|
+
},
|
|
6573
|
+
senderName: { required: true, type: String }
|
|
6574
|
+
},
|
|
6575
|
+
{ timestamps: true }
|
|
6576
|
+
);
|
|
6577
|
+
var ParticipantSchema = new MongooseSchema5(
|
|
6578
|
+
{
|
|
6579
|
+
active: { default: true, required: true, type: Boolean },
|
|
6580
|
+
email: { required: true, type: String },
|
|
6581
|
+
userId: {
|
|
6582
|
+
ref: "User",
|
|
6583
|
+
required: true,
|
|
6584
|
+
type: import_mongoose5.default.Schema.Types.ObjectId
|
|
6585
|
+
}
|
|
6586
|
+
},
|
|
6587
|
+
{ _id: false }
|
|
6588
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6589
|
+
);
|
|
6590
|
+
var ChatSchema = new MongooseSchema5(
|
|
6591
|
+
{
|
|
6592
|
+
active: { default: true, required: true, type: Boolean },
|
|
6593
|
+
chatName: { required: true, type: String },
|
|
6594
|
+
chatType: {
|
|
6595
|
+
enum: Object.values(EnumChatType),
|
|
6596
|
+
required: true,
|
|
6597
|
+
type: String
|
|
6598
|
+
},
|
|
6599
|
+
deletedAt: { default: null, required: false, type: Date },
|
|
6600
|
+
messages: [MessageSchema],
|
|
6601
|
+
participants: [ParticipantSchema],
|
|
6602
|
+
resourceInfo: {
|
|
6603
|
+
eventId: {
|
|
6604
|
+
ref: "Event",
|
|
6605
|
+
required: false,
|
|
6606
|
+
type: import_mongoose5.default.Schema.Types.ObjectId
|
|
6607
|
+
},
|
|
6608
|
+
vendorId: {
|
|
6609
|
+
ref: "Vendor",
|
|
6610
|
+
required: false,
|
|
6611
|
+
type: import_mongoose5.default.Schema.Types.ObjectId
|
|
6612
|
+
}
|
|
6613
|
+
}
|
|
6614
|
+
},
|
|
6615
|
+
{
|
|
6616
|
+
timestamps: true
|
|
6617
|
+
}
|
|
6618
|
+
);
|
|
6619
|
+
var ChatModel = import_mongoose5.default.model("Chat", ChatSchema);
|
|
6620
|
+
|
|
6621
|
+
// src/mongoose/Notification.ts
|
|
6622
|
+
var import_mongoose6 = __toESM(require("mongoose"));
|
|
6623
|
+
var MongooseSchema6 = import_mongoose6.default.Schema;
|
|
6624
|
+
var schema3 = new MongooseSchema6(
|
|
6625
|
+
{
|
|
6626
|
+
data: {
|
|
6627
|
+
resourceId: { required: true, type: String },
|
|
6628
|
+
resourceName: { required: true, type: String },
|
|
6629
|
+
resourceType: {
|
|
6630
|
+
enum: Object.values(EnumNotificationResourceType),
|
|
6631
|
+
required: true,
|
|
6632
|
+
type: String
|
|
6633
|
+
}
|
|
6634
|
+
},
|
|
6635
|
+
isRead: { default: false, index: true, required: true, type: Boolean },
|
|
6636
|
+
message: { required: true, type: String },
|
|
6637
|
+
title: { required: true, type: String },
|
|
6638
|
+
type: {
|
|
6639
|
+
default: "system" /* SYSTEM */,
|
|
6640
|
+
enum: Object.values(EnumNotificationType),
|
|
6641
|
+
required: true,
|
|
6642
|
+
type: String
|
|
6643
|
+
},
|
|
6644
|
+
userId: {
|
|
6645
|
+
ref: "User",
|
|
6646
|
+
required: true,
|
|
6647
|
+
type: import_mongoose6.default.Schema.Types.ObjectId
|
|
6648
|
+
}
|
|
6649
|
+
},
|
|
6650
|
+
{ timestamps: true }
|
|
6651
|
+
);
|
|
6652
|
+
schema3.index({ isRead: 1, userId: 1 });
|
|
6653
|
+
schema3.index({ createdAt: -1, userId: 1 });
|
|
6654
|
+
var NotificationModel = import_mongoose6.default.model(
|
|
6655
|
+
"Notification",
|
|
6656
|
+
schema3
|
|
6657
|
+
);
|
|
6658
|
+
var Notification_default = NotificationModel;
|
|
6659
|
+
|
|
6660
|
+
// src/mongoose/PushToken.ts
|
|
6661
|
+
var import_mongoose7 = __toESM(require("mongoose"));
|
|
6662
|
+
var MongooseSchema7 = import_mongoose7.default.Schema;
|
|
6663
|
+
var schema4 = new MongooseSchema7(
|
|
6664
|
+
{
|
|
6665
|
+
platform: {
|
|
6666
|
+
enum: Object.values(EnumOSPlatform),
|
|
6667
|
+
required: true,
|
|
6668
|
+
type: String
|
|
6669
|
+
},
|
|
6670
|
+
token: { required: true, type: String },
|
|
6671
|
+
userId: { required: true, type: import_mongoose7.default.Schema.Types.ObjectId }
|
|
6672
|
+
},
|
|
6673
|
+
{ timestamps: true }
|
|
6674
|
+
);
|
|
6675
|
+
var PushTokenModel = import_mongoose7.default.model("PushToken", schema4);
|
|
6676
|
+
var PushToken_default = PushTokenModel;
|
|
6677
|
+
|
|
6678
|
+
// src/mongoose/ResourceActivity.ts
|
|
6679
|
+
var import_mongoose8 = __toESM(require("mongoose"));
|
|
6680
|
+
var MongooseSchema8 = import_mongoose8.default.Schema;
|
|
6681
|
+
var ActivitySchema = new MongooseSchema8(
|
|
6682
|
+
{
|
|
6683
|
+
activityType: {
|
|
6684
|
+
enum: Object.values(EnumActivity),
|
|
6685
|
+
required: true,
|
|
6686
|
+
type: String
|
|
6687
|
+
},
|
|
6688
|
+
location: {
|
|
6689
|
+
coordinates: {
|
|
6690
|
+
required: false,
|
|
6691
|
+
type: [Number]
|
|
6692
|
+
},
|
|
6693
|
+
type: {
|
|
6694
|
+
default: "Point",
|
|
6695
|
+
enum: ["Point"],
|
|
6696
|
+
required: false,
|
|
6697
|
+
type: String
|
|
6698
|
+
}
|
|
6699
|
+
},
|
|
6700
|
+
startDate: { required: false, type: String },
|
|
6701
|
+
startTime: { required: false, type: String },
|
|
6702
|
+
timestamp: { default: Date.now, type: Date },
|
|
6703
|
+
userAgent: {
|
|
6704
|
+
enum: Object.values(EnumOSPlatform),
|
|
6705
|
+
required: true,
|
|
6706
|
+
type: String
|
|
6707
|
+
},
|
|
6708
|
+
userId: { required: false, type: String }
|
|
6709
|
+
},
|
|
6710
|
+
{ _id: false }
|
|
6711
|
+
);
|
|
6712
|
+
var schema5 = new MongooseSchema8(
|
|
6713
|
+
{
|
|
6714
|
+
activity: { default: [], type: [ActivitySchema] },
|
|
6715
|
+
resourceId: { required: true, type: String },
|
|
6716
|
+
resourceType: {
|
|
6717
|
+
enum: Object.values(EnumResourceType),
|
|
6718
|
+
required: true,
|
|
6719
|
+
type: String
|
|
6720
|
+
}
|
|
6721
|
+
},
|
|
6722
|
+
{ timestamps: true }
|
|
6723
|
+
);
|
|
6724
|
+
schema5.index({ resourceId: 1, resourceType: 1 }, { unique: true });
|
|
6725
|
+
schema5.index({ "views.location": "2dsphere" });
|
|
6726
|
+
var ResourceActivityModel = import_mongoose8.default.model("ResourceActivity", schema5);
|
|
6727
|
+
|
|
6728
|
+
// src/mongoose/Testers.ts
|
|
6729
|
+
var import_mongoose9 = __toESM(require("mongoose"));
|
|
6730
|
+
var MongooseSchema9 = import_mongoose9.default.Schema;
|
|
6731
|
+
var TesterSchema = new MongooseSchema9(
|
|
6732
|
+
{
|
|
6733
|
+
active: { default: false, required: true, type: Boolean },
|
|
6734
|
+
categories: [CategorySchema],
|
|
6735
|
+
companyName: { required: true, type: String },
|
|
6736
|
+
email: { required: true, type: String },
|
|
6737
|
+
firstName: { required: true, type: String },
|
|
6738
|
+
lastName: { required: true, type: String },
|
|
6739
|
+
osType: {
|
|
6740
|
+
enum: Object.values(EnumOSPlatform),
|
|
6741
|
+
required: true,
|
|
6742
|
+
type: String
|
|
6743
|
+
},
|
|
6744
|
+
region: { required: true, type: String },
|
|
6745
|
+
resourceType: {
|
|
6746
|
+
enum: Object.values(EnumResourceType),
|
|
6747
|
+
required: true,
|
|
6748
|
+
type: String
|
|
6749
|
+
}
|
|
6750
|
+
},
|
|
6751
|
+
{
|
|
6752
|
+
timestamps: true
|
|
6753
|
+
}
|
|
6754
|
+
);
|
|
6755
|
+
var TesterModel = import_mongoose9.default.model("Tester", TesterSchema);
|
|
6756
|
+
|
|
6757
|
+
// src/mongoose/User.ts
|
|
6758
|
+
var import_mongoose10 = __toESM(require("mongoose"));
|
|
6759
|
+
var MongooseSchema10 = import_mongoose10.default.Schema;
|
|
6760
|
+
var userActivityEventSchema = new MongooseSchema10(
|
|
6761
|
+
{
|
|
6762
|
+
resourceId: {
|
|
6763
|
+
ref: "Event",
|
|
6764
|
+
required: false,
|
|
6765
|
+
type: import_mongoose10.default.Schema.Types.ObjectId
|
|
6766
|
+
},
|
|
6767
|
+
startDate: { required: false, type: String },
|
|
6768
|
+
startTime: { required: false, type: String }
|
|
6769
|
+
},
|
|
6770
|
+
{ _id: false }
|
|
6771
|
+
);
|
|
6772
|
+
var userActivityFavouritesSchema = new MongooseSchema10(
|
|
6773
|
+
{
|
|
6774
|
+
events: {
|
|
6775
|
+
ref: "Event",
|
|
6776
|
+
required: false,
|
|
6777
|
+
type: [import_mongoose10.default.Schema.Types.ObjectId]
|
|
6778
|
+
},
|
|
6779
|
+
vendors: {
|
|
6780
|
+
ref: "Vendor",
|
|
6781
|
+
required: false,
|
|
6782
|
+
type: [import_mongoose10.default.Schema.Types.ObjectId]
|
|
6783
|
+
}
|
|
6784
|
+
},
|
|
6785
|
+
{ _id: false }
|
|
6786
|
+
);
|
|
6787
|
+
var schema6 = new MongooseSchema10(
|
|
6788
|
+
{
|
|
6789
|
+
active: { default: false, required: true, type: Boolean },
|
|
6790
|
+
avatar: ResourceImageTypeSchema,
|
|
6791
|
+
deletedAt: { default: null, required: false, type: Date },
|
|
6792
|
+
email: { required: true, type: String },
|
|
6793
|
+
events: {
|
|
6794
|
+
ref: "Event",
|
|
6795
|
+
required: false,
|
|
6796
|
+
type: [import_mongoose10.default.Schema.Types.ObjectId]
|
|
6797
|
+
},
|
|
6798
|
+
firstName: { required: true, type: String },
|
|
6799
|
+
isTester: { default: false, required: false, type: Boolean },
|
|
6800
|
+
lastName: { required: true, type: String },
|
|
6801
|
+
licences: {
|
|
6802
|
+
enum: Object.values(EnumUserLicence),
|
|
6803
|
+
required: false,
|
|
6804
|
+
type: [String]
|
|
6805
|
+
},
|
|
6806
|
+
partners: {
|
|
6807
|
+
required: false,
|
|
6808
|
+
type: [partnersSchema]
|
|
6809
|
+
},
|
|
6810
|
+
password: { required: true, type: String },
|
|
6811
|
+
platform: {
|
|
6812
|
+
enum: Object.values(EnumOSPlatform),
|
|
6813
|
+
required: false,
|
|
6814
|
+
type: String
|
|
6815
|
+
},
|
|
6816
|
+
preferredRegion: {
|
|
6817
|
+
required: true,
|
|
6818
|
+
type: String
|
|
6819
|
+
},
|
|
6820
|
+
refreshToken: {
|
|
6821
|
+
required: false,
|
|
6822
|
+
type: String
|
|
6823
|
+
},
|
|
6824
|
+
role: {
|
|
6825
|
+
default: "customer" /* CUSTOMER */,
|
|
6826
|
+
enum: Object.values(EnumUserRole),
|
|
6827
|
+
required: true,
|
|
6828
|
+
type: String
|
|
6829
|
+
},
|
|
6830
|
+
termsAgreement: termsAgreementSchema,
|
|
6831
|
+
userActivity: {
|
|
6832
|
+
favourites: {
|
|
6833
|
+
default: () => ({ events: [], vendors: [] }),
|
|
6834
|
+
type: userActivityFavouritesSchema
|
|
6835
|
+
},
|
|
6836
|
+
going: {
|
|
6837
|
+
events: [userActivityEventSchema]
|
|
6838
|
+
},
|
|
6839
|
+
interested: {
|
|
6840
|
+
events: [userActivityEventSchema]
|
|
6841
|
+
},
|
|
6842
|
+
present: {
|
|
6843
|
+
events: [userActivityEventSchema]
|
|
6844
|
+
}
|
|
6845
|
+
},
|
|
6846
|
+
vendor: {
|
|
6847
|
+
ref: "Vendor",
|
|
6848
|
+
required: false,
|
|
6849
|
+
type: import_mongoose10.default.Schema.Types.ObjectId
|
|
6850
|
+
}
|
|
6851
|
+
},
|
|
6852
|
+
{ timestamps: true }
|
|
6853
|
+
);
|
|
6854
|
+
schema6.index({ "partners.email": 1 });
|
|
6855
|
+
var UserModel = import_mongoose10.default.model("User", schema6);
|
|
6856
|
+
|
|
6857
|
+
// src/mongoose/VerificationToken.ts
|
|
6858
|
+
var import_mongoose11 = __toESM(require("mongoose"));
|
|
6859
|
+
var MongooseSchema11 = import_mongoose11.default.Schema;
|
|
6860
|
+
var schema7 = new MongooseSchema11(
|
|
6861
|
+
{
|
|
6862
|
+
createdAt: {
|
|
6863
|
+
default: Date.now,
|
|
6864
|
+
expires: 24 * 60 * 60,
|
|
6865
|
+
// 24 hours in seconds (MongoDB TTL expects seconds)
|
|
6866
|
+
required: true,
|
|
6867
|
+
type: Date
|
|
6868
|
+
},
|
|
6869
|
+
// Token expires after 1 day
|
|
6870
|
+
email: { required: true, type: String },
|
|
6871
|
+
verificationToken: { required: true, type: String }
|
|
6872
|
+
},
|
|
6873
|
+
{ timestamps: true }
|
|
6874
|
+
);
|
|
6875
|
+
var VerificationTokenModel = import_mongoose11.default.model(
|
|
6876
|
+
"VerificationToken",
|
|
6877
|
+
schema7
|
|
6878
|
+
);
|
|
6879
|
+
|
|
6880
|
+
// src/mongoose/vendor/Vendor.ts
|
|
6881
|
+
var import_mongoose12 = __toESM(require("mongoose"));
|
|
6882
|
+
var MongooseSchema12 = import_mongoose12.default.Schema;
|
|
6883
|
+
var MenuTypeSchema = new MongooseSchema12(
|
|
6884
|
+
{
|
|
6885
|
+
description: { required: false, type: String },
|
|
6886
|
+
name: { required: false, type: String },
|
|
6887
|
+
price: { required: false, type: Number },
|
|
6888
|
+
productGroups: { required: false, type: [String] }
|
|
6889
|
+
},
|
|
6890
|
+
{ _id: false }
|
|
6891
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6892
|
+
);
|
|
6893
|
+
var LocationsSchema = new MongooseSchema12(
|
|
6894
|
+
{
|
|
6895
|
+
dateTime: {
|
|
6896
|
+
endDate: { required: false, type: String },
|
|
6897
|
+
endTime: { required: false, type: String },
|
|
6898
|
+
startDate: { required: false, type: String },
|
|
6899
|
+
startTime: { required: false, type: String }
|
|
6900
|
+
},
|
|
6901
|
+
description: { required: false, type: String },
|
|
6902
|
+
location: {
|
|
6903
|
+
city: { required: false, type: String },
|
|
6904
|
+
coordinates: {
|
|
6905
|
+
required: false,
|
|
6906
|
+
type: [Number]
|
|
6907
|
+
// [longitude, latitude]
|
|
6908
|
+
},
|
|
6909
|
+
country: { required: false, type: String },
|
|
6910
|
+
fullAddress: { required: false, type: String },
|
|
6911
|
+
latitude: { required: false, type: Number },
|
|
6912
|
+
longitude: { required: false, type: Number },
|
|
6913
|
+
region: { required: false, type: String },
|
|
6914
|
+
type: { required: false, type: String }
|
|
6915
|
+
// Mongoose GeoJSON type
|
|
6916
|
+
}
|
|
6917
|
+
},
|
|
6918
|
+
{ _id: false }
|
|
6919
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
6920
|
+
);
|
|
6921
|
+
var schema8 = new MongooseSchema12(
|
|
6922
|
+
{
|
|
6923
|
+
...baseResourceFields,
|
|
6924
|
+
// Importing base resource fields from global.ts
|
|
6925
|
+
availability: {
|
|
6926
|
+
corporate: { default: false, required: false, type: Boolean },
|
|
6927
|
+
private: { default: false, required: false, type: Boolean },
|
|
6928
|
+
school: { default: false, required: false, type: Boolean }
|
|
6929
|
+
},
|
|
6930
|
+
categories: [CategorySchema],
|
|
6931
|
+
locations: [LocationsSchema],
|
|
6932
|
+
multiLocation: { required: true, type: Boolean },
|
|
6933
|
+
products: [MenuTypeSchema],
|
|
6934
|
+
vendorInfoId: {
|
|
6935
|
+
ref: "VendorInfo",
|
|
6936
|
+
required: false,
|
|
6937
|
+
type: import_mongoose12.default.Schema.Types.ObjectId
|
|
6938
|
+
},
|
|
6939
|
+
vendorType: {
|
|
6940
|
+
enum: Object.values(EnumVendorType),
|
|
6941
|
+
required: true,
|
|
6942
|
+
type: String
|
|
6943
|
+
}
|
|
6944
|
+
},
|
|
6945
|
+
{ timestamps: true }
|
|
6946
|
+
);
|
|
6947
|
+
schema8.index({ name: 1 });
|
|
6948
|
+
schema8.index({ description: 1 });
|
|
6949
|
+
schema8.index({ region: 1 });
|
|
6950
|
+
schema8.index({ "categories.name": 1 });
|
|
6951
|
+
schema8.index({ "partners.email": 1 });
|
|
6952
|
+
var VendorModel = import_mongoose12.default.model("Vendor", schema8);
|
|
6953
|
+
|
|
6954
|
+
// src/mongoose/vendor/VendorInfo.ts
|
|
6955
|
+
var import_mongoose13 = __toESM(require("mongoose"));
|
|
6956
|
+
var MongooseSchema13 = import_mongoose13.default.Schema;
|
|
6957
|
+
var AttributesSchema = new MongooseSchema13(
|
|
6958
|
+
{
|
|
6959
|
+
details: { required: false, type: String },
|
|
6960
|
+
isRequired: { default: false, required: true, type: Boolean }
|
|
6961
|
+
},
|
|
6962
|
+
{ _id: false }
|
|
6963
|
+
);
|
|
6964
|
+
var schema9 = new MongooseSchema13(
|
|
6965
|
+
{
|
|
6966
|
+
compliance: {
|
|
6967
|
+
foodBeverageLicense: { default: false, required: false, type: Boolean },
|
|
6968
|
+
liabilityInsurance: { default: false, required: false, type: Boolean }
|
|
6969
|
+
},
|
|
6970
|
+
documents: [ResourceImageTypeSchema],
|
|
6971
|
+
product: {
|
|
6972
|
+
foodFlavors: {
|
|
6973
|
+
enum: Object.values(EnumFoodFlavor),
|
|
6974
|
+
required: true,
|
|
6975
|
+
type: [String]
|
|
6976
|
+
},
|
|
6977
|
+
packaging: { required: true, type: [String] },
|
|
6978
|
+
priceRange: {
|
|
6979
|
+
max: { required: true, type: Number },
|
|
6980
|
+
min: { required: true, type: Number }
|
|
6981
|
+
},
|
|
6982
|
+
producedIn: { required: true, type: [String] }
|
|
6983
|
+
},
|
|
6984
|
+
requirements: {
|
|
6985
|
+
electricity: AttributesSchema,
|
|
6986
|
+
gazebo: AttributesSchema,
|
|
6987
|
+
table: AttributesSchema
|
|
6988
|
+
},
|
|
6989
|
+
stallInfo: {
|
|
6990
|
+
size: {
|
|
6991
|
+
depth: { required: true, type: Number },
|
|
6992
|
+
width: { required: true, type: Number }
|
|
6993
|
+
}
|
|
6994
|
+
},
|
|
6995
|
+
vendorId: {
|
|
6996
|
+
ref: "Vendor",
|
|
6997
|
+
required: true,
|
|
6998
|
+
type: import_mongoose13.default.Schema.Types.ObjectId
|
|
6999
|
+
}
|
|
7000
|
+
},
|
|
7001
|
+
{ timestamps: true }
|
|
7002
|
+
);
|
|
7003
|
+
var VendorInfoModel = import_mongoose13.default.model(
|
|
7004
|
+
"VendorInfo",
|
|
7005
|
+
schema9
|
|
7006
|
+
);
|
|
7007
|
+
|
|
7008
|
+
// src/mongoose/event/Event.ts
|
|
7009
|
+
var import_mongoose14 = __toESM(require("mongoose"));
|
|
7010
|
+
var MongooseSchema14 = import_mongoose14.default.Schema;
|
|
7011
|
+
var locationsSchema = new MongooseSchema14(
|
|
7012
|
+
{
|
|
7013
|
+
city: { required: true, type: String },
|
|
7014
|
+
coordinates: {
|
|
7015
|
+
required: true,
|
|
7016
|
+
type: [Number]
|
|
7017
|
+
// [longitude, latitude]
|
|
7018
|
+
},
|
|
7019
|
+
country: { required: true, type: String },
|
|
7020
|
+
fullAddress: { required: true, type: String },
|
|
7021
|
+
latitude: { required: true, type: Number },
|
|
7022
|
+
longitude: { required: true, type: Number },
|
|
7023
|
+
region: { required: true, type: String },
|
|
7024
|
+
type: {
|
|
7025
|
+
default: "Point",
|
|
7026
|
+
enum: ["Point"],
|
|
7027
|
+
required: true,
|
|
7028
|
+
type: String
|
|
7029
|
+
}
|
|
7030
|
+
},
|
|
7031
|
+
{ _id: false }
|
|
7032
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
7033
|
+
);
|
|
7034
|
+
var dateTimeSchema3 = new MongooseSchema14(
|
|
7035
|
+
{
|
|
7036
|
+
endDate: { required: true, type: String },
|
|
7037
|
+
endTime: { required: true, type: String },
|
|
7038
|
+
startDate: { required: true, type: String },
|
|
7039
|
+
startTime: { required: true, type: String }
|
|
7040
|
+
},
|
|
7041
|
+
{ _id: false }
|
|
7042
|
+
// Prevents Mongoose from creating an additional _id field for subdocuments
|
|
7043
|
+
);
|
|
7044
|
+
var schema10 = new MongooseSchema14(
|
|
7045
|
+
{
|
|
7046
|
+
...baseResourceFields,
|
|
7047
|
+
// Importing base resource fields from global.ts
|
|
7048
|
+
dateTime: [dateTimeSchema3],
|
|
7049
|
+
eventInfoId: {
|
|
7050
|
+
ref: "EventInfo",
|
|
7051
|
+
required: false,
|
|
7052
|
+
type: import_mongoose14.default.Schema.Types.ObjectId
|
|
7053
|
+
},
|
|
7054
|
+
eventType: {
|
|
7055
|
+
enum: Object.values(EnumEventType),
|
|
7056
|
+
required: true,
|
|
7057
|
+
type: String
|
|
7058
|
+
},
|
|
7059
|
+
location: {
|
|
7060
|
+
required: true,
|
|
7061
|
+
type: locationsSchema
|
|
7062
|
+
},
|
|
7063
|
+
nzbn: { required: true, type: String },
|
|
7064
|
+
provider: { required: false, type: String },
|
|
7065
|
+
rainOrShine: { required: true, type: Boolean },
|
|
7066
|
+
tags: { required: true, type: [String] }
|
|
7067
|
+
},
|
|
7068
|
+
{ timestamps: true }
|
|
7069
|
+
);
|
|
7070
|
+
schema10.index({ name: 1 });
|
|
7071
|
+
schema10.index({ description: 1 });
|
|
7072
|
+
schema10.index({ region: 1 });
|
|
7073
|
+
schema10.index({ location: "2dsphere" });
|
|
7074
|
+
schema10.index({ tags: 1 });
|
|
7075
|
+
schema10.index({ "partners.email": 1 });
|
|
7076
|
+
var EventModel = import_mongoose14.default.model("Event", schema10);
|
|
7077
|
+
|
|
7078
|
+
// src/service/database.ts
|
|
7079
|
+
var import_mongoose15 = __toESM(require("mongoose"));
|
|
7080
|
+
|
|
7081
|
+
// src/service/timezonePlugin.ts
|
|
7082
|
+
var import_dayjs3 = __toESM(require("dayjs"));
|
|
7083
|
+
var import_timezone2 = __toESM(require("dayjs/plugin/timezone"));
|
|
7084
|
+
var import_utc2 = __toESM(require("dayjs/plugin/utc"));
|
|
7085
|
+
import_dayjs3.default.extend(import_utc2.default);
|
|
7086
|
+
import_dayjs3.default.extend(import_timezone2.default);
|
|
7087
|
+
function timezonePlugin(schema11) {
|
|
7088
|
+
if (!schema11.get("timestamps")) return;
|
|
7089
|
+
const transform = (_doc, ret) => {
|
|
7090
|
+
if (ret.createdAt)
|
|
7091
|
+
ret.createdAt = (0, import_dayjs3.default)(ret.createdAt).tz("Pacific/Auckland").format();
|
|
7092
|
+
if (ret.updatedAt)
|
|
7093
|
+
ret.updatedAt = (0, import_dayjs3.default)(ret.updatedAt).tz("Pacific/Auckland").format();
|
|
7094
|
+
return ret;
|
|
7095
|
+
};
|
|
7096
|
+
schema11.set("toJSON", { transform });
|
|
7097
|
+
schema11.set("toObject", { transform });
|
|
7098
|
+
}
|
|
7099
|
+
|
|
7100
|
+
// src/service/database.ts
|
|
7101
|
+
import_mongoose15.default.plugin(timezonePlugin);
|
|
7102
|
+
var connectToDatabase = async () => {
|
|
7103
|
+
try {
|
|
7104
|
+
const mongoUri = process.env.MONGODB_URI ? process.env.MONGODB_URI : (
|
|
7105
|
+
// Fallback to MongoDB Atlas connection string
|
|
7106
|
+
`mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_NAME}.mongodb.net/?retryWrites=true&w=majority&appName=${process.env.APP_NAME}`
|
|
7107
|
+
);
|
|
7108
|
+
await import_mongoose15.default.connect(mongoUri);
|
|
7109
|
+
const connectionType = process.env.MONGODB_URI ? "Local MongoDB" : "MongoDB Atlas";
|
|
7110
|
+
console.log(
|
|
7111
|
+
`${connectionType} connected from server/src/service/database.ts`
|
|
7112
|
+
);
|
|
7113
|
+
} catch (err) {
|
|
7114
|
+
console.error("Error connecting to MongoDB:", err);
|
|
7115
|
+
throw err;
|
|
7116
|
+
}
|
|
7117
|
+
};
|
|
7118
|
+
|
|
7119
|
+
// src/service/notificationService.ts
|
|
7120
|
+
async function publishNotificationEvents(userId, context) {
|
|
7121
|
+
try {
|
|
7122
|
+
const userNotifications = await Notification_default.find({
|
|
7123
|
+
userId
|
|
7124
|
+
}).sort({ createdAt: -1 });
|
|
7125
|
+
const [total, unread] = await Promise.all([
|
|
7126
|
+
Notification_default.countDocuments({ userId }),
|
|
7127
|
+
Notification_default.countDocuments({ isRead: false, userId })
|
|
7128
|
+
]);
|
|
7129
|
+
context.pubsub.publish("GET_NOTIFICATIONS" /* GET_NOTIFICATIONS */, {
|
|
7130
|
+
getNotifications: userNotifications,
|
|
7131
|
+
getNotificationsUserId: userId
|
|
7132
|
+
});
|
|
7133
|
+
context.pubsub.publish("GET_NOTIFICATIONS_COUNT" /* GET_NOTIFICATIONS_COUNT */, {
|
|
7134
|
+
getNotificationsCount: { total, unread, userId }
|
|
7135
|
+
});
|
|
7136
|
+
console.log(`Published notification events for user: ${String(userId)}`);
|
|
7137
|
+
} catch (error) {
|
|
7138
|
+
console.error(
|
|
7139
|
+
`Failed to publish notification events for user ${String(userId)}:`,
|
|
7140
|
+
error
|
|
7141
|
+
);
|
|
7142
|
+
}
|
|
7143
|
+
}
|
|
7144
|
+
async function createNotifications(payload, context) {
|
|
7145
|
+
const { data, message, title, type, userIds } = payload;
|
|
7146
|
+
try {
|
|
7147
|
+
const notifications = userIds.map((userId) => ({
|
|
7148
|
+
data,
|
|
7149
|
+
isRead: false,
|
|
7150
|
+
message,
|
|
7151
|
+
title,
|
|
7152
|
+
type,
|
|
7153
|
+
userId
|
|
7154
|
+
}));
|
|
7155
|
+
const savedNotifications = await Notification_default.insertMany(notifications);
|
|
7156
|
+
console.log(
|
|
7157
|
+
`Created ${savedNotifications.length} notifications for ${userIds.length} users`
|
|
7158
|
+
);
|
|
7159
|
+
const uniqueUserIds = [...new Set(userIds)];
|
|
7160
|
+
for (const userId of uniqueUserIds) {
|
|
7161
|
+
await publishNotificationEvents(userId, context);
|
|
7162
|
+
}
|
|
7163
|
+
return savedNotifications;
|
|
7164
|
+
} catch (error) {
|
|
7165
|
+
console.error("Failed to create notifications:", error);
|
|
7166
|
+
return [];
|
|
7167
|
+
}
|
|
7168
|
+
}
|
|
7169
|
+
|
|
7170
|
+
// src/service/sendPushNotification.ts
|
|
7171
|
+
var import_expo_server_sdk = require("expo-server-sdk");
|
|
7172
|
+
var expo = new import_expo_server_sdk.Expo();
|
|
7173
|
+
function extractTokensFromMessage(message) {
|
|
7174
|
+
return Array.isArray(message.to) ? message.to : [message.to];
|
|
7175
|
+
}
|
|
7176
|
+
function createPushMessages({
|
|
7177
|
+
tokens,
|
|
7178
|
+
message,
|
|
7179
|
+
title,
|
|
7180
|
+
data
|
|
7181
|
+
}) {
|
|
7182
|
+
const messages = [];
|
|
7183
|
+
const invalidTokens = [];
|
|
7184
|
+
for (const token of tokens) {
|
|
7185
|
+
if (!import_expo_server_sdk.Expo.isExpoPushToken(token)) {
|
|
7186
|
+
invalidTokens.push(token);
|
|
7187
|
+
continue;
|
|
7188
|
+
}
|
|
7189
|
+
messages.push({
|
|
7190
|
+
body: message,
|
|
7191
|
+
data: { ...data },
|
|
7192
|
+
sound: "default",
|
|
7193
|
+
title,
|
|
7194
|
+
to: token
|
|
7195
|
+
});
|
|
7196
|
+
}
|
|
7197
|
+
return { invalidTokens, messages };
|
|
7198
|
+
}
|
|
7199
|
+
function processChunkResults(tickets, chunk) {
|
|
7200
|
+
let successCount = 0;
|
|
7201
|
+
const failedTokens = [];
|
|
7202
|
+
for (const [ticketIndex, ticket] of tickets.entries()) {
|
|
7203
|
+
if (ticket.status === "error") {
|
|
7204
|
+
const message = chunk[ticketIndex];
|
|
7205
|
+
if (message) {
|
|
7206
|
+
const tokens = extractTokensFromMessage(message);
|
|
7207
|
+
if (ticket.details?.error === "DeviceNotRegistered") {
|
|
7208
|
+
failedTokens.push(...tokens);
|
|
7209
|
+
}
|
|
7210
|
+
console.log("Push notification error", {
|
|
7211
|
+
error: ticket.details?.error,
|
|
7212
|
+
tokens
|
|
7213
|
+
});
|
|
7214
|
+
}
|
|
7215
|
+
} else {
|
|
7216
|
+
successCount++;
|
|
7217
|
+
}
|
|
7218
|
+
}
|
|
7219
|
+
return { failedTokens, successCount };
|
|
7220
|
+
}
|
|
7221
|
+
async function sendChunk(chunk, chunkIndex) {
|
|
7222
|
+
try {
|
|
7223
|
+
const tickets = await expo.sendPushNotificationsAsync(chunk);
|
|
7224
|
+
const { successCount, failedTokens } = processChunkResults(tickets, chunk);
|
|
7225
|
+
console.log(
|
|
7226
|
+
`Chunk ${chunkIndex + 1}: Sent ${successCount}/${chunk.length} notifications successfully`
|
|
7227
|
+
);
|
|
7228
|
+
return { failedTokens, successCount };
|
|
7229
|
+
} catch (error) {
|
|
7230
|
+
console.log("Error sending Expo push notification chunk", {
|
|
7231
|
+
chunkIndex,
|
|
7232
|
+
chunkSize: chunk.length,
|
|
7233
|
+
error: error instanceof Error ? error.message : String(error)
|
|
7234
|
+
});
|
|
7235
|
+
return { failedTokens: [], successCount: 0 };
|
|
7236
|
+
}
|
|
7237
|
+
}
|
|
7238
|
+
async function sendPushNotification({
|
|
7239
|
+
data,
|
|
7240
|
+
message,
|
|
7241
|
+
title,
|
|
7242
|
+
userIds
|
|
7243
|
+
}) {
|
|
7244
|
+
const pushTokens = await PushToken_default.find({ userId: { $in: userIds } });
|
|
7245
|
+
const expoTokens = pushTokens.map((token) => token.token);
|
|
7246
|
+
const { messages, invalidTokens } = createPushMessages({
|
|
7247
|
+
data,
|
|
7248
|
+
message,
|
|
7249
|
+
title,
|
|
7250
|
+
tokens: expoTokens
|
|
7251
|
+
});
|
|
7252
|
+
if (invalidTokens.length > 0) {
|
|
7253
|
+
console.log(`Found ${invalidTokens.length} invalid push tokens`);
|
|
7254
|
+
}
|
|
7255
|
+
if (messages.length === 0) {
|
|
7256
|
+
console.log("No valid messages to send after filtering tokens");
|
|
7257
|
+
return;
|
|
7258
|
+
}
|
|
7259
|
+
const chunks = expo.chunkPushNotifications(messages);
|
|
7260
|
+
let totalSuccessCount = 0;
|
|
7261
|
+
const allFailedTokens = [];
|
|
7262
|
+
for (const [chunkIndex, chunk] of chunks.entries()) {
|
|
7263
|
+
const { successCount, failedTokens } = await sendChunk(
|
|
7264
|
+
chunk,
|
|
7265
|
+
chunkIndex + 1
|
|
7266
|
+
);
|
|
7267
|
+
totalSuccessCount += successCount;
|
|
7268
|
+
allFailedTokens.push(...failedTokens);
|
|
7269
|
+
}
|
|
7270
|
+
console.log(
|
|
7271
|
+
`Sent push notification to ${totalSuccessCount}/${messages.length} tokens across ${chunks.length} chunks`
|
|
7272
|
+
);
|
|
7273
|
+
if (allFailedTokens.length > 0) {
|
|
7274
|
+
console.log(`Found ${allFailedTokens.length} failed push tokens`);
|
|
7275
|
+
}
|
|
7276
|
+
}
|
|
7277
|
+
|
|
6169
7278
|
// src/storage/index.ts
|
|
6170
7279
|
var SAVED_PASSWORD_KEY = "savedPassword";
|
|
6171
7280
|
var SAVED_EMAIL_KEY = "savedEmail";
|
|
@@ -6210,27 +7319,9 @@ var fonts = {
|
|
|
6210
7319
|
fontWeight: "400"
|
|
6211
7320
|
}
|
|
6212
7321
|
};
|
|
6213
|
-
|
|
6214
|
-
// src/types/global.ts
|
|
6215
|
-
var EnumPubSubEvents = /* @__PURE__ */ ((EnumPubSubEvents2) => {
|
|
6216
|
-
EnumPubSubEvents2["GET_CHAT_MESSAGE"] = "GET_CHAT_MESSAGE";
|
|
6217
|
-
EnumPubSubEvents2["GET_NOTIFICATIONS"] = "GET_NOTIFICATIONS";
|
|
6218
|
-
EnumPubSubEvents2["GET_NOTIFICATIONS_COUNT"] = "GET_NOTIFICATIONS_COUNT";
|
|
6219
|
-
EnumPubSubEvents2["USER_TYPING"] = "USER_TYPING";
|
|
6220
|
-
return EnumPubSubEvents2;
|
|
6221
|
-
})(EnumPubSubEvents || {});
|
|
6222
|
-
|
|
6223
|
-
// src/types/resourceActivities.ts
|
|
6224
|
-
var EnumActivity = /* @__PURE__ */ ((EnumActivity2) => {
|
|
6225
|
-
EnumActivity2["FAVORITE"] = "FAVORITE";
|
|
6226
|
-
EnumActivity2["GOING"] = "GOING";
|
|
6227
|
-
EnumActivity2["INTERESTED"] = "INTERESTED";
|
|
6228
|
-
EnumActivity2["PRESENT"] = "PRESENT";
|
|
6229
|
-
EnumActivity2["VIEW"] = "VIEW";
|
|
6230
|
-
return EnumActivity2;
|
|
6231
|
-
})(EnumActivity || {});
|
|
6232
7322
|
// Annotate the CommonJS export names for ESM import in node:
|
|
6233
7323
|
0 && (module.exports = {
|
|
7324
|
+
CategorySchema,
|
|
6234
7325
|
EnumActivity,
|
|
6235
7326
|
EnumAdShowOn,
|
|
6236
7327
|
EnumAdStatus,
|
|
@@ -6253,20 +7344,28 @@ var EnumActivity = /* @__PURE__ */ ((EnumActivity2) => {
|
|
|
6253
7344
|
EnumUserRole,
|
|
6254
7345
|
EnumVendorType,
|
|
6255
7346
|
ImageTypeEnum,
|
|
7347
|
+
ParticipantSchema,
|
|
7348
|
+
RelationTypeSchema,
|
|
7349
|
+
ResourceImageTypeSchema,
|
|
6256
7350
|
SAVED_EMAIL_KEY,
|
|
6257
7351
|
SAVED_PASSWORD_KEY,
|
|
6258
7352
|
SAVED_REFRESH_TOKEN_KEY,
|
|
6259
7353
|
SAVED_TOKEN_KEY,
|
|
7354
|
+
SocialMediaTypeSchema,
|
|
7355
|
+
StallTypeSchema,
|
|
6260
7356
|
USER_STORAGE_KEY,
|
|
6261
7357
|
availableCategories,
|
|
6262
7358
|
availableCityOptions,
|
|
6263
7359
|
availableRegionOptions,
|
|
6264
7360
|
availableRegionTypes,
|
|
6265
7361
|
availableTagTypes,
|
|
7362
|
+
baseResourceFields,
|
|
6266
7363
|
capitalizeFirstLetter,
|
|
6267
7364
|
categoryColors,
|
|
6268
7365
|
companyContactFields,
|
|
7366
|
+
connectToDatabase,
|
|
6269
7367
|
contactUsFields,
|
|
7368
|
+
createNotifications,
|
|
6270
7369
|
darkColors,
|
|
6271
7370
|
dateFormat,
|
|
6272
7371
|
defaultEventFormValues,
|
|
@@ -6293,20 +7392,25 @@ var EnumActivity = /* @__PURE__ */ ((EnumActivity2) => {
|
|
|
6293
7392
|
mapBaseResourceTypeToFormData,
|
|
6294
7393
|
normalizeUrl,
|
|
6295
7394
|
packagingOptions,
|
|
7395
|
+
partnersSchema,
|
|
6296
7396
|
paymentMethodOptions,
|
|
6297
7397
|
producedIngOptions,
|
|
6298
7398
|
productLabelGroups,
|
|
6299
7399
|
profileFields,
|
|
7400
|
+
publishNotificationEvents,
|
|
6300
7401
|
registerFields,
|
|
7402
|
+
relationDatesSchema,
|
|
6301
7403
|
removeTypename,
|
|
6302
7404
|
requestPasswordResetFields,
|
|
6303
7405
|
requirementsOptions,
|
|
6304
7406
|
resetPasswordFields,
|
|
7407
|
+
sendPushNotification,
|
|
6305
7408
|
socialMediaFields,
|
|
6306
7409
|
sortDatesChronologically,
|
|
6307
7410
|
stallTypeOptions,
|
|
6308
7411
|
statusOptions,
|
|
6309
7412
|
tagOptions,
|
|
7413
|
+
termsAgreementSchema,
|
|
6310
7414
|
testersFields,
|
|
6311
7415
|
timeFormat,
|
|
6312
7416
|
truncateText,
|