@timardex/cluemart-server-shared 1.0.281 → 1.0.284

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.
@@ -30,10 +30,17 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/service/index.ts
31
31
  var service_exports = {};
32
32
  __export(service_exports, {
33
+ ACTIVE_NOT_DELETED_FILTER: () => ACTIVE_NOT_DELETED_FILTER,
34
+ AFFILIATE_REWARDS: () => AFFILIATE_REWARDS,
35
+ activeAffiliateCodeExists: () => activeAffiliateCodeExists,
33
36
  connectToDatabase: () => connectToDatabase,
34
37
  convertObjectIdsToStrings: () => convertObjectIdsToStrings,
38
+ createAffiliateReward: () => createAffiliateReward,
35
39
  didRemoveAnyEventDates: () => didRemoveAnyEventDates,
40
+ findAffiliateByPromoCode: () => findAffiliateByPromoCode,
36
41
  findEventOrImportedMarketById: () => findEventOrImportedMarketById,
42
+ normalizeAffiliatePromoCodes: () => normalizeAffiliatePromoCodes,
43
+ normalizePromoCode: () => normalizePromoCode,
37
44
  saveNotificationsInDb: () => saveNotificationsInDb,
38
45
  sendPushNotifications: () => sendPushNotifications,
39
46
  updateAdStatuses: () => updateAdStatuses,
@@ -44,31 +51,6 @@ __export(service_exports, {
44
51
  });
45
52
  module.exports = __toCommonJS(service_exports);
46
53
 
47
- // src/service/database.ts
48
- var import_mongoose = __toESM(require("mongoose"));
49
- var connectToDatabase = async ({
50
- appName,
51
- dbName,
52
- dbPassword,
53
- dbUser,
54
- mongodbUri
55
- }) => {
56
- try {
57
- const mongoUri = mongodbUri ? mongodbUri : (
58
- // Fallback to MongoDB Atlas connection string
59
- `mongodb+srv://${dbUser}:${dbPassword}@${dbName}.mongodb.net/?retryWrites=true&w=majority&appName=${appName}`
60
- );
61
- await import_mongoose.default.connect(mongoUri);
62
- const connectionType = mongodbUri ? "Local MongoDB" : "MongoDB Atlas";
63
- console.log(
64
- `${connectionType} connected from server/src/service/database.ts`
65
- );
66
- } catch (err) {
67
- console.error("Error connecting to MongoDB:", err);
68
- throw err;
69
- }
70
- };
71
-
72
54
  // node_modules/@timardex/cluemart-shared/dist/index.mjs
73
55
  var import_dayjs = __toESM(require("dayjs"), 1);
74
56
  var import_customParseFormat = __toESM(require("dayjs/plugin/customParseFormat.js"), 1);
@@ -7491,6 +7473,7 @@ var AFFILIATE_REWARD_FIELDS_FRAGMENT = gql`
7491
7473
  var AFFILIATE_RESOURCE_FIELDS_FRAGMENT = gql`
7492
7474
  fragment AffiliateResourceFields on AffiliateResourceType {
7493
7475
  resourceActive
7476
+ resourceDeletedAt
7494
7477
  resourceId
7495
7478
  resourceName
7496
7479
  resourceType
@@ -7681,209 +7664,10 @@ var SHARE_TYPE_PATH_REGEX = [
7681
7664
  RELATION_SHARE_INVITATION
7682
7665
  ].join("|");
7683
7666
 
7684
- // src/mongoose/Notification.ts
7685
- var import_mongoose2 = __toESM(require("mongoose"));
7686
- var MongooseSchema = import_mongoose2.default.Schema;
7687
- var schema = new MongooseSchema(
7688
- {
7689
- data: {
7690
- resourceId: { required: true, type: String },
7691
- resourceName: { required: true, type: String },
7692
- resourceType: {
7693
- enum: Object.values(EnumNotificationResourceType),
7694
- required: true,
7695
- type: String
7696
- }
7697
- },
7698
- isRead: { default: false, index: true, required: true, type: Boolean },
7699
- message: { required: true, type: String },
7700
- title: { required: true, type: String },
7701
- type: {
7702
- default: EnumNotificationType.SYSTEM,
7703
- enum: Object.values(EnumNotificationType),
7704
- required: true,
7705
- type: String
7706
- },
7707
- userId: {
7708
- ref: "User",
7709
- required: true,
7710
- type: import_mongoose2.default.Schema.Types.ObjectId
7711
- }
7712
- },
7713
- { timestamps: true }
7714
- );
7715
- schema.index({ isRead: 1, userId: 1 });
7716
- schema.index({ createdAt: -1, userId: 1 });
7717
- var NotificationModel = import_mongoose2.default.models.Notification || import_mongoose2.default.model("Notification", schema);
7718
-
7719
- // src/service/saveNotificationsInDb.ts
7720
- async function saveNotificationsInDb(payload) {
7721
- const { data, message, title, type, userIds } = payload;
7722
- console.log("NOTIFICATION DATA", JSON.stringify(payload, null, 2));
7723
- try {
7724
- const notifications = userIds.map((userId) => ({
7725
- data,
7726
- isRead: false,
7727
- message,
7728
- title,
7729
- type,
7730
- userId
7731
- }));
7732
- await NotificationModel.insertMany(notifications);
7733
- console.log(
7734
- `Created ${notifications.length} notifications for ${userIds.length} users`
7735
- );
7736
- return [...new Set(userIds)];
7737
- } catch (error) {
7738
- console.error("Failed to create notifications:", error);
7739
- return [];
7740
- }
7741
- }
7742
-
7743
- // src/service/sendPushNotifications.ts
7744
- var import_expo_server_sdk = require("expo-server-sdk");
7745
-
7746
- // node_modules/@timardex/cluemart-shared/dist/chunk-LETM2YHF.mjs
7747
- var EnumOSPlatform2 = /* @__PURE__ */ ((EnumOSPlatform22) => {
7748
- EnumOSPlatform22["ANDROID"] = "android";
7749
- EnumOSPlatform22["IOS"] = "ios";
7750
- EnumOSPlatform22["WEB"] = "web";
7751
- return EnumOSPlatform22;
7752
- })(EnumOSPlatform2 || {});
7753
-
7754
- // src/mongoose/PushToken.ts
7755
- var import_mongoose3 = __toESM(require("mongoose"));
7756
- var MongooseSchema2 = import_mongoose3.default.Schema;
7757
- var schema2 = new MongooseSchema2(
7758
- {
7759
- platform: {
7760
- enum: Object.values(EnumOSPlatform2),
7761
- required: true,
7762
- type: String
7763
- },
7764
- token: { required: true, type: String },
7765
- userId: {
7766
- ref: "User",
7767
- required: true,
7768
- type: import_mongoose3.default.Schema.Types.ObjectId
7769
- }
7770
- },
7771
- { timestamps: true }
7772
- );
7773
- var PushTokenModel = import_mongoose3.default.models.PushToken || import_mongoose3.default.model("PushToken", schema2);
7774
-
7775
- // src/service/sendPushNotifications.ts
7776
- var expo = new import_expo_server_sdk.Expo();
7777
- function extractTokensFromMessage(message) {
7778
- return Array.isArray(message.to) ? message.to : [message.to];
7779
- }
7780
- function createPushMessages({
7781
- tokens,
7782
- message,
7783
- title,
7784
- data
7785
- }) {
7786
- const messages = [];
7787
- const invalidTokens = [];
7788
- for (const token of tokens) {
7789
- if (!import_expo_server_sdk.Expo.isExpoPushToken(token)) {
7790
- invalidTokens.push(token);
7791
- continue;
7792
- }
7793
- messages.push({
7794
- body: message,
7795
- data: { ...data },
7796
- sound: "tui.wav",
7797
- title,
7798
- to: token
7799
- });
7800
- }
7801
- return { invalidTokens, messages };
7802
- }
7803
- function processChunkResults(tickets, chunk) {
7804
- let successCount = 0;
7805
- const failedTokens = [];
7806
- for (const [ticketIndex, ticket] of tickets.entries()) {
7807
- if (ticket.status === "error") {
7808
- const message = chunk[ticketIndex];
7809
- if (message) {
7810
- const tokens = extractTokensFromMessage(message);
7811
- if (ticket.details?.error === "DeviceNotRegistered") {
7812
- failedTokens.push(...tokens);
7813
- }
7814
- console.log("Push notification error", {
7815
- error: ticket.details?.error,
7816
- tokens
7817
- });
7818
- }
7819
- } else {
7820
- successCount++;
7821
- }
7822
- }
7823
- return { failedTokens, successCount };
7824
- }
7825
- async function sendChunk(chunk, chunkIndex) {
7826
- try {
7827
- const tickets = await expo.sendPushNotificationsAsync(chunk);
7828
- const { successCount, failedTokens } = processChunkResults(tickets, chunk);
7829
- console.log(
7830
- `Chunk ${chunkIndex + 1}: Sent ${successCount}/${chunk.length} notifications successfully`
7831
- );
7832
- return { failedTokens, successCount };
7833
- } catch (error) {
7834
- console.log("Error sending Expo push notification chunk", {
7835
- chunkIndex,
7836
- chunkSize: chunk.length,
7837
- error: error instanceof Error ? error.message : String(error)
7838
- });
7839
- return { failedTokens: [], successCount: 0 };
7840
- }
7841
- }
7842
- async function sendPushNotifications({
7843
- data,
7844
- message,
7845
- title,
7846
- userIds
7847
- }) {
7848
- const pushTokens = await PushTokenModel.find({ userId: { $in: userIds } });
7849
- const expoTokens = pushTokens.map((token) => token.token);
7850
- if (!data) return;
7851
- const { messages, invalidTokens } = createPushMessages({
7852
- data,
7853
- message,
7854
- title,
7855
- tokens: expoTokens
7856
- });
7857
- if (invalidTokens.length > 0) {
7858
- console.log(`Found ${invalidTokens.length} invalid push tokens`);
7859
- }
7860
- if (messages.length === 0) {
7861
- console.log("No valid messages to send after filtering tokens");
7862
- return;
7863
- }
7864
- const chunks = expo.chunkPushNotifications(messages);
7865
- let totalSuccessCount = 0;
7866
- const allFailedTokens = [];
7867
- for (const [chunkIndex, chunk] of chunks.entries()) {
7868
- const { successCount, failedTokens } = await sendChunk(
7869
- chunk,
7870
- chunkIndex + 1
7871
- );
7872
- totalSuccessCount += successCount;
7873
- allFailedTokens.push(...failedTokens);
7874
- }
7875
- console.log(
7876
- `Sent push notification to ${totalSuccessCount}/${messages.length} tokens across ${chunks.length} chunks`
7877
- );
7878
- if (allFailedTokens.length > 0) {
7879
- console.log(`Found ${allFailedTokens.length} failed push tokens`);
7880
- }
7881
- }
7882
-
7883
7667
  // src/mongoose/Ad.ts
7884
- var import_mongoose4 = __toESM(require("mongoose"));
7885
- var MongooseSchema3 = import_mongoose4.default.Schema;
7886
- var schemaAdresource = new MongooseSchema3({
7668
+ var import_mongoose = __toESM(require("mongoose"));
7669
+ var MongooseSchema = import_mongoose.default.Schema;
7670
+ var schemaAdresource = new MongooseSchema({
7887
7671
  adDescription: { required: true, type: String },
7888
7672
  adImage: { required: true, type: String },
7889
7673
  adStyle: {
@@ -7909,7 +7693,7 @@ var schemaAdresource = new MongooseSchema3({
7909
7693
  type: String
7910
7694
  }
7911
7695
  });
7912
- var schema3 = new MongooseSchema3(
7696
+ var schema = new MongooseSchema(
7913
7697
  {
7914
7698
  active: { default: true, type: Boolean },
7915
7699
  clicks: { default: 0, required: true, type: Number },
@@ -7935,51 +7719,51 @@ var schema3 = new MongooseSchema3(
7935
7719
  timestamps: true
7936
7720
  }
7937
7721
  );
7938
- schema3.index({
7722
+ schema.index({
7939
7723
  end: 1,
7940
7724
  start: 1,
7941
7725
  status: 1
7942
7726
  });
7943
- var AdModel = import_mongoose4.default.models.Ad || import_mongoose4.default.model("Ad", schema3);
7727
+ var AdModel = import_mongoose.default.models.Ad || import_mongoose.default.model("Ad", schema);
7944
7728
 
7945
7729
  // src/mongoose/chat/Chat.ts
7946
- var import_mongoose5 = __toESM(require("mongoose"));
7947
- var MongooseSchema4 = import_mongoose5.default.Schema;
7948
- var MessageReplyPreviewSchema = new MongooseSchema4(
7730
+ var import_mongoose2 = __toESM(require("mongoose"));
7731
+ var MongooseSchema2 = import_mongoose2.default.Schema;
7732
+ var MessageReplyPreviewSchema = new MongooseSchema2(
7949
7733
  {
7950
7734
  contentPreview: { required: true, type: String },
7951
7735
  senderId: {
7952
7736
  ref: "User",
7953
7737
  required: true,
7954
- type: import_mongoose5.default.Schema.Types.ObjectId
7738
+ type: import_mongoose2.default.Schema.Types.ObjectId
7955
7739
  },
7956
7740
  senderName: { required: true, type: String }
7957
7741
  },
7958
7742
  { _id: false }
7959
7743
  );
7960
- var MessageReactionSchema = new MongooseSchema4(
7744
+ var MessageReactionSchema = new MongooseSchema2(
7961
7745
  {
7962
7746
  createdAt: { required: true, type: Date },
7963
7747
  userId: {
7964
7748
  ref: "User",
7965
7749
  required: true,
7966
- type: import_mongoose5.default.Schema.Types.ObjectId
7750
+ type: import_mongoose2.default.Schema.Types.ObjectId
7967
7751
  }
7968
7752
  },
7969
7753
  { _id: false }
7970
7754
  );
7971
- var MessageSeenSchema = new MongooseSchema4(
7755
+ var MessageSeenSchema = new MongooseSchema2(
7972
7756
  {
7973
7757
  seenAt: { required: true, type: Date },
7974
7758
  userId: {
7975
7759
  ref: "User",
7976
7760
  required: true,
7977
- type: import_mongoose5.default.Schema.Types.ObjectId
7761
+ type: import_mongoose2.default.Schema.Types.ObjectId
7978
7762
  }
7979
7763
  },
7980
7764
  { _id: false }
7981
7765
  );
7982
- var MessageSchema = new MongooseSchema4(
7766
+ var MessageSchema = new MongooseSchema2(
7983
7767
  {
7984
7768
  content: { required: true, type: String },
7985
7769
  likedBy: { default: [], required: false, type: [MessageReactionSchema] },
@@ -7990,18 +7774,18 @@ var MessageSchema = new MongooseSchema4(
7990
7774
  replyToMessageId: {
7991
7775
  ref: "Chat.messages",
7992
7776
  required: false,
7993
- type: import_mongoose5.default.Schema.Types.ObjectId
7777
+ type: import_mongoose2.default.Schema.Types.ObjectId
7994
7778
  },
7995
7779
  seenBy: { default: [], required: false, type: [MessageSeenSchema] },
7996
7780
  senderId: {
7997
7781
  ref: "User",
7998
7782
  required: true,
7999
- type: import_mongoose5.default.Schema.Types.ObjectId
7783
+ type: import_mongoose2.default.Schema.Types.ObjectId
8000
7784
  }
8001
7785
  },
8002
7786
  { timestamps: true }
8003
7787
  );
8004
- var ParticipantSchema = new MongooseSchema4(
7788
+ var ParticipantSchema = new MongooseSchema2(
8005
7789
  {
8006
7790
  active: { default: true, required: true, type: Boolean },
8007
7791
  isAssociate: { default: null, required: false, type: Boolean },
@@ -8010,14 +7794,14 @@ var ParticipantSchema = new MongooseSchema4(
8010
7794
  userId: {
8011
7795
  ref: "User",
8012
7796
  required: true,
8013
- type: import_mongoose5.default.Schema.Types.ObjectId
7797
+ type: import_mongoose2.default.Schema.Types.ObjectId
8014
7798
  },
8015
7799
  userName: { required: true, type: String }
8016
7800
  },
8017
7801
  { _id: false }
8018
7802
  // Prevents Mongoose from creating an additional _id field for subdocuments
8019
7803
  );
8020
- var ChatSchema = new MongooseSchema4(
7804
+ var ChatSchema = new MongooseSchema2(
8021
7805
  {
8022
7806
  active: { default: true, required: true, type: Boolean },
8023
7807
  chatDescription: { required: false, type: String },
@@ -8041,12 +7825,12 @@ ChatSchema.index({
8041
7825
  "participants.userId": 1,
8042
7826
  updatedAt: -1
8043
7827
  });
8044
- var ChatModel = import_mongoose5.default.models.Chat || import_mongoose5.default.model("Chat", ChatSchema);
7828
+ var ChatModel = import_mongoose2.default.models.Chat || import_mongoose2.default.model("Chat", ChatSchema);
8045
7829
 
8046
7830
  // src/mongoose/chat/ChatReport.ts
8047
- var import_mongoose6 = __toESM(require("mongoose"));
8048
- var MongooseSchema5 = import_mongoose6.default.Schema;
8049
- var ReasonSchema = new MongooseSchema5(
7831
+ var import_mongoose3 = __toESM(require("mongoose"));
7832
+ var MongooseSchema3 = import_mongoose3.default.Schema;
7833
+ var ReasonSchema = new MongooseSchema3(
8050
7834
  {
8051
7835
  details: { default: null, required: false, type: String },
8052
7836
  reasonType: {
@@ -8057,23 +7841,23 @@ var ReasonSchema = new MongooseSchema5(
8057
7841
  },
8058
7842
  { _id: false }
8059
7843
  );
8060
- var ChatReportSchema = new MongooseSchema5(
7844
+ var ChatReportSchema = new MongooseSchema3(
8061
7845
  {
8062
7846
  chatId: {
8063
7847
  ref: "Chat",
8064
7848
  required: true,
8065
- type: import_mongoose6.default.Schema.Types.ObjectId
7849
+ type: import_mongoose3.default.Schema.Types.ObjectId
8066
7850
  },
8067
7851
  reason: { required: true, type: ReasonSchema },
8068
7852
  reportedUserId: {
8069
7853
  ref: "User",
8070
7854
  required: true,
8071
- type: import_mongoose6.default.Schema.Types.ObjectId
7855
+ type: import_mongoose3.default.Schema.Types.ObjectId
8072
7856
  },
8073
7857
  reporterUserId: {
8074
7858
  ref: "User",
8075
7859
  required: true,
8076
- type: import_mongoose6.default.Schema.Types.ObjectId
7860
+ type: import_mongoose3.default.Schema.Types.ObjectId
8077
7861
  },
8078
7862
  resolved: { default: false, required: true, type: Boolean }
8079
7863
  },
@@ -8081,18 +7865,18 @@ var ChatReportSchema = new MongooseSchema5(
8081
7865
  );
8082
7866
  ChatReportSchema.index({ chatId: 1, reportedUserId: 1 });
8083
7867
  ChatReportSchema.index({ createdAt: -1, reporterUserId: 1 });
8084
- var ChatReportModel = import_mongoose6.default.models.ChatReport || import_mongoose6.default.model("ChatReport", ChatReportSchema);
7868
+ var ChatReportModel = import_mongoose3.default.models.ChatReport || import_mongoose3.default.model("ChatReport", ChatReportSchema);
8085
7869
 
8086
7870
  // src/mongoose/global.ts
8087
- var import_mongoose9 = __toESM(require("mongoose"));
7871
+ var import_mongoose6 = __toESM(require("mongoose"));
8088
7872
 
8089
7873
  // src/mongoose/Relation.ts
8090
- var import_mongoose8 = __toESM(require("mongoose"));
7874
+ var import_mongoose5 = __toESM(require("mongoose"));
8091
7875
 
8092
7876
  // src/mongoose/event/EventInfo.ts
8093
- var import_mongoose7 = __toESM(require("mongoose"));
8094
- var MongooseSchema6 = import_mongoose7.default.Schema;
8095
- var StallTypeSchema = new MongooseSchema6(
7877
+ var import_mongoose4 = __toESM(require("mongoose"));
7878
+ var MongooseSchema4 = import_mongoose4.default.Schema;
7879
+ var StallTypeSchema = new MongooseSchema4(
8096
7880
  {
8097
7881
  label: { required: false, type: String },
8098
7882
  price: { required: false, type: Number },
@@ -8103,7 +7887,7 @@ var StallTypeSchema = new MongooseSchema6(
8103
7887
  // Prevents Mongoose from creating an additional _id field for subdocuments
8104
7888
  }
8105
7889
  );
8106
- var dateTimeSchema = new MongooseSchema6(
7890
+ var dateTimeSchema = new MongooseSchema4(
8107
7891
  {
8108
7892
  dateStatus: {
8109
7893
  enum: Object.values(EnumEventDateStatus),
@@ -8119,7 +7903,7 @@ var dateTimeSchema = new MongooseSchema6(
8119
7903
  { _id: false }
8120
7904
  // Prevents Mongoose from creating an additional _id field for subdocuments
8121
7905
  );
8122
- var paymentInfoSchema = new MongooseSchema6(
7906
+ var paymentInfoSchema = new MongooseSchema4(
8123
7907
  {
8124
7908
  accountHolderName: { required: false, type: String },
8125
7909
  accountNumber: { required: false, type: String },
@@ -8133,7 +7917,7 @@ var paymentInfoSchema = new MongooseSchema6(
8133
7917
  { _id: false }
8134
7918
  // Prevents Mongoose from creating an additional _id field
8135
7919
  );
8136
- var requirementsSchema = new MongooseSchema6(
7920
+ var requirementsSchema = new MongooseSchema4(
8137
7921
  {
8138
7922
  category: { required: true, type: String },
8139
7923
  label: { required: true, type: String },
@@ -8144,7 +7928,7 @@ var requirementsSchema = new MongooseSchema6(
8144
7928
  // Prevents Mongoose from creating an additional _id field for
8145
7929
  }
8146
7930
  );
8147
- var refundPolicySchema = new MongooseSchema6(
7931
+ var refundPolicySchema = new MongooseSchema4(
8148
7932
  {
8149
7933
  category: { required: true, type: String },
8150
7934
  label: { required: true, type: String },
@@ -8152,7 +7936,7 @@ var refundPolicySchema = new MongooseSchema6(
8152
7936
  },
8153
7937
  { _id: false }
8154
7938
  );
8155
- var schema4 = new MongooseSchema6(
7939
+ var schema2 = new MongooseSchema4(
8156
7940
  {
8157
7941
  active: { default: true, type: Boolean },
8158
7942
  applicationDeadlineHours: { required: true, type: Number },
@@ -8160,7 +7944,7 @@ var schema4 = new MongooseSchema6(
8160
7944
  eventId: {
8161
7945
  ref: "Event",
8162
7946
  required: true,
8163
- type: import_mongoose7.default.Schema.Types.ObjectId
7947
+ type: import_mongoose4.default.Schema.Types.ObjectId
8164
7948
  },
8165
7949
  packInTime: { required: true, type: Number },
8166
7950
  paymentDueHours: { required: true, type: Number },
@@ -8170,11 +7954,11 @@ var schema4 = new MongooseSchema6(
8170
7954
  },
8171
7955
  { timestamps: true }
8172
7956
  );
8173
- var EventInfoModel = import_mongoose7.default.models.EventInfo || import_mongoose7.default.model("EventInfo", schema4);
7957
+ var EventInfoModel = import_mongoose4.default.models.EventInfo || import_mongoose4.default.model("EventInfo", schema2);
8174
7958
 
8175
7959
  // src/mongoose/Relation.ts
8176
- var MongooseSchema7 = import_mongoose8.default.Schema;
8177
- var relationDateTimeSchema = new MongooseSchema7(
7960
+ var MongooseSchema5 = import_mongoose5.default.Schema;
7961
+ var relationDateTimeSchema = new MongooseSchema5(
8178
7962
  {
8179
7963
  dateStatus: {
8180
7964
  enum: Object.values(EnumEventDateStatus),
@@ -8189,7 +7973,7 @@ var relationDateTimeSchema = new MongooseSchema7(
8189
7973
  },
8190
7974
  { _id: false }
8191
7975
  );
8192
- var relationDatesSchema = new MongooseSchema7(
7976
+ var relationDatesSchema = new MongooseSchema5(
8193
7977
  {
8194
7978
  dateTime: {
8195
7979
  required: true,
@@ -8208,19 +7992,19 @@ var relationDatesSchema = new MongooseSchema7(
8208
7992
  },
8209
7993
  { _id: false }
8210
7994
  );
8211
- var RelationTypeSchema = new MongooseSchema7(
7995
+ var RelationTypeSchema = new MongooseSchema5(
8212
7996
  {
8213
7997
  active: { default: true, required: true, type: Boolean },
8214
7998
  chatId: {
8215
7999
  ref: "Chat",
8216
8000
  required: true,
8217
- type: import_mongoose8.default.Schema.Types.ObjectId
8001
+ type: import_mongoose5.default.Schema.Types.ObjectId
8218
8002
  },
8219
8003
  deletedAt: { default: null, required: false, type: Date },
8220
8004
  eventId: {
8221
8005
  ref: "Event",
8222
8006
  required: true,
8223
- type: import_mongoose8.default.Schema.Types.ObjectId
8007
+ type: import_mongoose5.default.Schema.Types.ObjectId
8224
8008
  },
8225
8009
  lastUpdateBy: {
8226
8010
  enum: Object.values(EnumResourceType),
@@ -8236,7 +8020,7 @@ var RelationTypeSchema = new MongooseSchema7(
8236
8020
  vendorId: {
8237
8021
  ref: "Vendor",
8238
8022
  required: true,
8239
- type: import_mongoose8.default.Schema.Types.ObjectId
8023
+ type: import_mongoose5.default.Schema.Types.ObjectId
8240
8024
  }
8241
8025
  },
8242
8026
  { timestamps: true }
@@ -8248,23 +8032,23 @@ RelationTypeSchema.index({
8248
8032
  "relationDates.status": 1,
8249
8033
  vendorId: 1
8250
8034
  });
8251
- var RelationModel = import_mongoose8.default.models.Relation || import_mongoose8.default.model("Relation", RelationTypeSchema);
8035
+ var RelationModel = import_mongoose5.default.models.Relation || import_mongoose5.default.model("Relation", RelationTypeSchema);
8252
8036
 
8253
8037
  // src/mongoose/global.ts
8254
- var MongooseSchema8 = import_mongoose9.default.Schema;
8255
- var OwnerTypeSchema = new MongooseSchema8(
8038
+ var MongooseSchema6 = import_mongoose6.default.Schema;
8039
+ var OwnerTypeSchema = new MongooseSchema6(
8256
8040
  {
8257
8041
  email: { required: true, type: String },
8258
8042
  userId: {
8259
8043
  ref: "User",
8260
8044
  required: true,
8261
- type: import_mongoose9.default.Schema.Types.ObjectId
8045
+ type: import_mongoose6.default.Schema.Types.ObjectId
8262
8046
  }
8263
8047
  },
8264
8048
  { _id: false }
8265
8049
  // Prevents Mongoose from creating an additional _id field for subdocuments
8266
8050
  );
8267
- var SocialMediaTypeSchema = new MongooseSchema8(
8051
+ var SocialMediaTypeSchema = new MongooseSchema6(
8268
8052
  {
8269
8053
  link: { required: true, type: String },
8270
8054
  name: { required: true, type: String }
@@ -8272,7 +8056,7 @@ var SocialMediaTypeSchema = new MongooseSchema8(
8272
8056
  { _id: false }
8273
8057
  // Prevents Mongoose from creating an additional _id field
8274
8058
  );
8275
- var ResourceImageTypeSchema = new MongooseSchema8(
8059
+ var ResourceImageTypeSchema = new MongooseSchema6(
8276
8060
  {
8277
8061
  active: { default: true, required: true, type: Boolean },
8278
8062
  source: { required: false, type: String },
@@ -8281,7 +8065,7 @@ var ResourceImageTypeSchema = new MongooseSchema8(
8281
8065
  { _id: false }
8282
8066
  // Prevents Mongoose from creating an additional _id field for subdocuments
8283
8067
  );
8284
- var SubCategorySchema = new MongooseSchema8(
8068
+ var SubCategorySchema = new MongooseSchema6(
8285
8069
  {
8286
8070
  id: { required: false, type: String },
8287
8071
  items: [
@@ -8295,7 +8079,7 @@ var SubCategorySchema = new MongooseSchema8(
8295
8079
  { _id: false }
8296
8080
  // Prevents Mongoose from creating an additional _id field for subdocuments
8297
8081
  );
8298
- var CategorySchema = new MongooseSchema8(
8082
+ var CategorySchema = new MongooseSchema6(
8299
8083
  {
8300
8084
  id: { required: true, type: String },
8301
8085
  name: { required: true, type: String },
@@ -8304,7 +8088,7 @@ var CategorySchema = new MongooseSchema8(
8304
8088
  { _id: false }
8305
8089
  // Prevents Mongoose from creating an additional _id field for subdocuments
8306
8090
  );
8307
- var PosterUsageTypeSchema = new MongooseSchema8(
8091
+ var PosterUsageTypeSchema = new MongooseSchema6(
8308
8092
  {
8309
8093
  count: { default: 0, required: false, type: Number },
8310
8094
  month: { required: false, type: String }
@@ -8312,7 +8096,7 @@ var PosterUsageTypeSchema = new MongooseSchema8(
8312
8096
  { _id: false }
8313
8097
  // Prevents Mongoose from creating an additional _id field for subdocuments
8314
8098
  );
8315
- var userLicenseSchema = new MongooseSchema8(
8099
+ var userLicenseSchema = new MongooseSchema6(
8316
8100
  {
8317
8101
  expiryDate: { required: true, type: Date },
8318
8102
  issuedDate: { required: true, type: Date },
@@ -8329,7 +8113,7 @@ var userLicenseSchema = new MongooseSchema8(
8329
8113
  },
8330
8114
  { _id: false, timestamps: false }
8331
8115
  );
8332
- var associatesSchema = new MongooseSchema8(
8116
+ var associatesSchema = new MongooseSchema6(
8333
8117
  {
8334
8118
  email: { required: true, type: String },
8335
8119
  licence: {
@@ -8349,7 +8133,7 @@ var associatesSchema = new MongooseSchema8(
8349
8133
  { _id: false }
8350
8134
  // Prevents Mongoose from creating an additional _id field for subdocuments
8351
8135
  );
8352
- var ContactDetailsSchema = new MongooseSchema8(
8136
+ var ContactDetailsSchema = new MongooseSchema6(
8353
8137
  {
8354
8138
  email: { required: false, type: String },
8355
8139
  landlinePhone: { required: false, type: String },
@@ -8358,7 +8142,7 @@ var ContactDetailsSchema = new MongooseSchema8(
8358
8142
  { _id: false }
8359
8143
  // Prevents Mongoose from creating an additional _id field for subdocuments
8360
8144
  );
8361
- var termsAgreementSchema = new MongooseSchema8(
8145
+ var termsAgreementSchema = new MongooseSchema6(
8362
8146
  {
8363
8147
  appBuildNumber: { required: true, type: String },
8364
8148
  appId: { required: true, type: String },
@@ -8375,7 +8159,7 @@ var termsAgreementSchema = new MongooseSchema8(
8375
8159
  },
8376
8160
  { _id: false }
8377
8161
  );
8378
- var resourceRelationsSchema = new MongooseSchema8(
8162
+ var resourceRelationsSchema = new MongooseSchema6(
8379
8163
  {
8380
8164
  relationDates: {
8381
8165
  default: [],
@@ -8385,12 +8169,12 @@ var resourceRelationsSchema = new MongooseSchema8(
8385
8169
  relationId: {
8386
8170
  ref: "Relation",
8387
8171
  required: false,
8388
- type: import_mongoose9.default.Schema.Types.ObjectId
8172
+ type: import_mongoose6.default.Schema.Types.ObjectId
8389
8173
  }
8390
8174
  },
8391
8175
  { _id: false }
8392
8176
  );
8393
- var dateTimeSchema2 = new MongooseSchema8(
8177
+ var dateTimeSchema2 = new MongooseSchema6(
8394
8178
  {
8395
8179
  dateStatus: {
8396
8180
  enum: Object.values(EnumEventDateStatus),
@@ -8405,7 +8189,7 @@ var dateTimeSchema2 = new MongooseSchema8(
8405
8189
  { _id: false }
8406
8190
  // Prevents Mongoose from creating an additional _id field for subdocuments
8407
8191
  );
8408
- var locationGeoSchema = new MongooseSchema8(
8192
+ var locationGeoSchema = new MongooseSchema6(
8409
8193
  {
8410
8194
  coordinates: { required: true, type: [Number] },
8411
8195
  // [longitude, latitude]
@@ -8414,7 +8198,7 @@ var locationGeoSchema = new MongooseSchema8(
8414
8198
  { _id: false }
8415
8199
  // Prevents Mongoose from creating an additional _id field for subdocuments
8416
8200
  );
8417
- var locationsSchema = new MongooseSchema8(
8201
+ var locationsSchema = new MongooseSchema6(
8418
8202
  {
8419
8203
  city: { required: true, type: String },
8420
8204
  country: { required: true, type: String },
@@ -8430,13 +8214,13 @@ var locationsSchema = new MongooseSchema8(
8430
8214
  { _id: false }
8431
8215
  // Prevents Mongoose from creating an additional _id field for subdocuments
8432
8216
  );
8433
- var relatedPostSchema = new MongooseSchema8(
8217
+ var relatedPostSchema = new MongooseSchema6(
8434
8218
  {
8435
8219
  postActive: { default: true, required: true, type: Boolean },
8436
8220
  postId: {
8437
8221
  ref: "Post",
8438
8222
  required: true,
8439
- type: import_mongoose9.default.Schema.Types.ObjectId
8223
+ type: import_mongoose6.default.Schema.Types.ObjectId
8440
8224
  },
8441
8225
  postSlug: { required: true, type: String },
8442
8226
  postType: {
@@ -8453,7 +8237,7 @@ var baseResourceFields = {
8453
8237
  adIds: {
8454
8238
  ref: "Ad",
8455
8239
  required: false,
8456
- type: [import_mongoose9.default.Schema.Types.ObjectId]
8240
+ type: [import_mongoose6.default.Schema.Types.ObjectId]
8457
8241
  },
8458
8242
  associates: {
8459
8243
  required: false,
@@ -8483,7 +8267,7 @@ var baseResourceFields = {
8483
8267
  socialMedia: { required: false, type: [SocialMediaTypeSchema] },
8484
8268
  termsAgreement: { required: true, type: termsAgreementSchema }
8485
8269
  };
8486
- var socialShareResourceSchema = new MongooseSchema8(
8270
+ var socialShareResourceSchema = new MongooseSchema6(
8487
8271
  {
8488
8272
  qrCode: { required: true, type: ResourceImageTypeSchema },
8489
8273
  socialImage: { required: true, type: ResourceImageTypeSchema }
@@ -8493,9 +8277,9 @@ var socialShareResourceSchema = new MongooseSchema8(
8493
8277
  );
8494
8278
 
8495
8279
  // src/mongoose/GoogleImportedMarket.ts
8496
- var import_mongoose10 = __toESM(require("mongoose"));
8497
- var MongooseSchema9 = import_mongoose10.default.Schema;
8498
- var addressComponentSchema = new MongooseSchema9(
8280
+ var import_mongoose7 = __toESM(require("mongoose"));
8281
+ var MongooseSchema7 = import_mongoose7.default.Schema;
8282
+ var addressComponentSchema = new MongooseSchema7(
8499
8283
  {
8500
8284
  longName: { required: false, type: String },
8501
8285
  shortName: { required: false, type: String },
@@ -8503,7 +8287,7 @@ var addressComponentSchema = new MongooseSchema9(
8503
8287
  },
8504
8288
  { _id: false }
8505
8289
  );
8506
- var schema5 = new MongooseSchema9(
8290
+ var schema3 = new MongooseSchema7(
8507
8291
  {
8508
8292
  active: { default: false, required: true, type: Boolean },
8509
8293
  address: { required: true, type: String },
@@ -8514,7 +8298,7 @@ var schema5 = new MongooseSchema9(
8514
8298
  claimedByUserId: {
8515
8299
  ref: "User",
8516
8300
  required: false,
8517
- type: import_mongoose10.default.Schema.Types.ObjectId
8301
+ type: import_mongoose7.default.Schema.Types.ObjectId
8518
8302
  },
8519
8303
  cover: {
8520
8304
  required: false,
@@ -8526,7 +8310,7 @@ var schema5 = new MongooseSchema9(
8526
8310
  eventId: {
8527
8311
  ref: "Event",
8528
8312
  required: false,
8529
- type: import_mongoose10.default.Schema.Types.ObjectId
8313
+ type: import_mongoose7.default.Schema.Types.ObjectId
8530
8314
  },
8531
8315
  eventType: {
8532
8316
  enum: Object.values(EnumEventType),
@@ -8565,17 +8349,81 @@ var schema5 = new MongooseSchema9(
8565
8349
  },
8566
8350
  { timestamps: true }
8567
8351
  );
8568
- schema5.index({ "location.geo": "2dsphere" });
8569
- schema5.index({ name: 1 });
8570
- schema5.index({ region: 1 });
8571
- schema5.index({ deletedAt: 1 });
8572
- schema5.index({ "dateTime.dateStatus": 1 });
8573
- schema5.index({ slug: 1 });
8574
- var GoogleImportedMarketModel = import_mongoose10.default.models.GoogleImportedMarket || import_mongoose10.default.model("GoogleImportedMarket", schema5);
8352
+ schema3.index({ "location.geo": "2dsphere" });
8353
+ schema3.index({ name: 1 });
8354
+ schema3.index({ region: 1 });
8355
+ schema3.index({ deletedAt: 1 });
8356
+ schema3.index({ "dateTime.dateStatus": 1 });
8357
+ schema3.index({ slug: 1 });
8358
+ var GoogleImportedMarketModel = import_mongoose7.default.models.GoogleImportedMarket || import_mongoose7.default.model("GoogleImportedMarket", schema3);
8359
+
8360
+ // src/mongoose/Notification.ts
8361
+ var import_mongoose8 = __toESM(require("mongoose"));
8362
+ var MongooseSchema8 = import_mongoose8.default.Schema;
8363
+ var schema4 = new MongooseSchema8(
8364
+ {
8365
+ data: {
8366
+ resourceId: { required: true, type: String },
8367
+ resourceName: { required: true, type: String },
8368
+ resourceType: {
8369
+ enum: Object.values(EnumNotificationResourceType),
8370
+ required: true,
8371
+ type: String
8372
+ }
8373
+ },
8374
+ isRead: { default: false, index: true, required: true, type: Boolean },
8375
+ message: { required: true, type: String },
8376
+ title: { required: true, type: String },
8377
+ type: {
8378
+ default: EnumNotificationType.SYSTEM,
8379
+ enum: Object.values(EnumNotificationType),
8380
+ required: true,
8381
+ type: String
8382
+ },
8383
+ userId: {
8384
+ ref: "User",
8385
+ required: true,
8386
+ type: import_mongoose8.default.Schema.Types.ObjectId
8387
+ }
8388
+ },
8389
+ { timestamps: true }
8390
+ );
8391
+ schema4.index({ isRead: 1, userId: 1 });
8392
+ schema4.index({ createdAt: -1, userId: 1 });
8393
+ var NotificationModel = import_mongoose8.default.models.Notification || import_mongoose8.default.model("Notification", schema4);
8394
+
8395
+ // node_modules/@timardex/cluemart-shared/dist/chunk-LETM2YHF.mjs
8396
+ var EnumOSPlatform2 = /* @__PURE__ */ ((EnumOSPlatform22) => {
8397
+ EnumOSPlatform22["ANDROID"] = "android";
8398
+ EnumOSPlatform22["IOS"] = "ios";
8399
+ EnumOSPlatform22["WEB"] = "web";
8400
+ return EnumOSPlatform22;
8401
+ })(EnumOSPlatform2 || {});
8402
+
8403
+ // src/mongoose/PushToken.ts
8404
+ var import_mongoose9 = __toESM(require("mongoose"));
8405
+ var MongooseSchema9 = import_mongoose9.default.Schema;
8406
+ var schema5 = new MongooseSchema9(
8407
+ {
8408
+ platform: {
8409
+ enum: Object.values(EnumOSPlatform2),
8410
+ required: true,
8411
+ type: String
8412
+ },
8413
+ token: { required: true, type: String },
8414
+ userId: {
8415
+ ref: "User",
8416
+ required: true,
8417
+ type: import_mongoose9.default.Schema.Types.ObjectId
8418
+ }
8419
+ },
8420
+ { timestamps: true }
8421
+ );
8422
+ var PushTokenModel = import_mongoose9.default.models.PushToken || import_mongoose9.default.model("PushToken", schema5);
8575
8423
 
8576
8424
  // src/mongoose/ResourceActivity.ts
8577
- var import_mongoose11 = __toESM(require("mongoose"));
8578
- var MongooseSchema10 = import_mongoose11.default.Schema;
8425
+ var import_mongoose10 = __toESM(require("mongoose"));
8426
+ var MongooseSchema10 = import_mongoose10.default.Schema;
8579
8427
  var ActivitySchema = new MongooseSchema10(
8580
8428
  {
8581
8429
  activityType: {
@@ -8618,18 +8466,18 @@ var schema6 = new MongooseSchema10(
8618
8466
  );
8619
8467
  schema6.index({ resourceId: 1, resourceType: 1 }, { unique: true });
8620
8468
  schema6.index({ "views.location": "2dsphere" });
8621
- var ResourceActivityModel = import_mongoose11.default.models.ResourceActivity || import_mongoose11.default.model("ResourceActivity", schema6);
8469
+ var ResourceActivityModel = import_mongoose10.default.models.ResourceActivity || import_mongoose10.default.model("ResourceActivity", schema6);
8622
8470
 
8623
8471
  // src/mongoose/User.ts
8624
- var import_mongoose12 = __toESM(require("mongoose"));
8625
- var MongooseSchema11 = import_mongoose12.default.Schema;
8472
+ var import_mongoose11 = __toESM(require("mongoose"));
8473
+ var MongooseSchema11 = import_mongoose11.default.Schema;
8626
8474
  var userActivityEventSchema = new MongooseSchema11(
8627
8475
  {
8628
8476
  dateTime: dateTimeSchema2,
8629
8477
  resourceId: {
8630
8478
  ref: "Event",
8631
8479
  required: false,
8632
- type: import_mongoose12.default.Schema.Types.ObjectId
8480
+ type: import_mongoose11.default.Schema.Types.ObjectId
8633
8481
  }
8634
8482
  },
8635
8483
  { _id: false }
@@ -8639,17 +8487,17 @@ var userActivityFavouritesSchema = new MongooseSchema11(
8639
8487
  events: {
8640
8488
  ref: "Event",
8641
8489
  required: false,
8642
- type: [import_mongoose12.default.Schema.Types.ObjectId]
8490
+ type: [import_mongoose11.default.Schema.Types.ObjectId]
8643
8491
  },
8644
8492
  partners: {
8645
8493
  ref: "Partner",
8646
8494
  required: false,
8647
- type: [import_mongoose12.default.Schema.Types.ObjectId]
8495
+ type: [import_mongoose11.default.Schema.Types.ObjectId]
8648
8496
  },
8649
8497
  vendors: {
8650
8498
  ref: "Vendor",
8651
8499
  required: false,
8652
- type: [import_mongoose12.default.Schema.Types.ObjectId]
8500
+ type: [import_mongoose11.default.Schema.Types.ObjectId]
8653
8501
  }
8654
8502
  },
8655
8503
  { _id: false }
@@ -8703,7 +8551,7 @@ var schema7 = new MongooseSchema11(
8703
8551
  affiliate: {
8704
8552
  ref: "Affiliate",
8705
8553
  required: false,
8706
- type: import_mongoose12.default.Schema.Types.ObjectId
8554
+ type: import_mongoose11.default.Schema.Types.ObjectId
8707
8555
  },
8708
8556
  associates: {
8709
8557
  required: false,
@@ -8723,13 +8571,13 @@ var schema7 = new MongooseSchema11(
8723
8571
  events: {
8724
8572
  ref: "Event",
8725
8573
  required: false,
8726
- type: [import_mongoose12.default.Schema.Types.ObjectId]
8574
+ type: [import_mongoose11.default.Schema.Types.ObjectId]
8727
8575
  },
8728
8576
  firstName: { required: true, type: String },
8729
8577
  game: {
8730
8578
  ref: "Game",
8731
8579
  required: false,
8732
- type: import_mongoose12.default.Schema.Types.ObjectId
8580
+ type: import_mongoose11.default.Schema.Types.ObjectId
8733
8581
  },
8734
8582
  isTester: { default: false, required: true, type: Boolean },
8735
8583
  lastName: { required: true, type: String },
@@ -8745,7 +8593,7 @@ var schema7 = new MongooseSchema11(
8745
8593
  partner: {
8746
8594
  ref: "Partner",
8747
8595
  required: false,
8748
- type: import_mongoose12.default.Schema.Types.ObjectId
8596
+ type: import_mongoose11.default.Schema.Types.ObjectId
8749
8597
  },
8750
8598
  password: { required: true, type: String },
8751
8599
  platform: {
@@ -8778,7 +8626,7 @@ var schema7 = new MongooseSchema11(
8778
8626
  school: {
8779
8627
  ref: "School",
8780
8628
  required: false,
8781
- type: import_mongoose12.default.Schema.Types.ObjectId
8629
+ type: import_mongoose11.default.Schema.Types.ObjectId
8782
8630
  },
8783
8631
  stripe: {
8784
8632
  required: false,
@@ -8803,7 +8651,7 @@ var schema7 = new MongooseSchema11(
8803
8651
  vendor: {
8804
8652
  ref: "Vendor",
8805
8653
  required: false,
8806
- type: import_mongoose12.default.Schema.Types.ObjectId
8654
+ type: import_mongoose11.default.Schema.Types.ObjectId
8807
8655
  }
8808
8656
  },
8809
8657
  { strict: false, timestamps: true }
@@ -8811,11 +8659,11 @@ var schema7 = new MongooseSchema11(
8811
8659
  schema7.index({ "associates.email": 1 });
8812
8660
  schema7.index({ "licences.expiryDate": 1 });
8813
8661
  schema7.index({ "licences.licenceType": 1 });
8814
- var UserModel = import_mongoose12.default.models.User || import_mongoose12.default.model("User", schema7);
8662
+ var UserModel = import_mongoose11.default.models.User || import_mongoose11.default.model("User", schema7);
8815
8663
 
8816
8664
  // src/mongoose/VerificationToken.ts
8817
- var import_mongoose13 = __toESM(require("mongoose"));
8818
- var MongooseSchema12 = import_mongoose13.default.Schema;
8665
+ var import_mongoose12 = __toESM(require("mongoose"));
8666
+ var MongooseSchema12 = import_mongoose12.default.Schema;
8819
8667
  var schema8 = new MongooseSchema12(
8820
8668
  {
8821
8669
  createdAt: {
@@ -8831,11 +8679,11 @@ var schema8 = new MongooseSchema12(
8831
8679
  },
8832
8680
  { timestamps: true }
8833
8681
  );
8834
- var VerificationTokenModel = import_mongoose13.default.models.VerificationToken || import_mongoose13.default.model("VerificationToken", schema8);
8682
+ var VerificationTokenModel = import_mongoose12.default.models.VerificationToken || import_mongoose12.default.model("VerificationToken", schema8);
8835
8683
 
8836
8684
  // src/mongoose/vendor/Vendor.ts
8837
- var import_mongoose14 = __toESM(require("mongoose"));
8838
- var MongooseSchema13 = import_mongoose14.default.Schema;
8685
+ var import_mongoose13 = __toESM(require("mongoose"));
8686
+ var MongooseSchema13 = import_mongoose13.default.Schema;
8839
8687
  var productTypeSchema = new MongooseSchema13(
8840
8688
  {
8841
8689
  description: { required: false, type: String },
@@ -8908,12 +8756,12 @@ var schema9 = new MongooseSchema13(
8908
8756
  unregisteredVendorId: {
8909
8757
  ref: "UnregisteredVendor",
8910
8758
  required: false,
8911
- type: import_mongoose14.default.Schema.Types.ObjectId
8759
+ type: import_mongoose13.default.Schema.Types.ObjectId
8912
8760
  },
8913
8761
  vendorInfoId: {
8914
8762
  ref: "VendorInfo",
8915
8763
  required: false,
8916
- type: import_mongoose14.default.Schema.Types.ObjectId
8764
+ type: import_mongoose13.default.Schema.Types.ObjectId
8917
8765
  },
8918
8766
  vendorType: {
8919
8767
  enum: Object.values(EnumVendorType),
@@ -8929,11 +8777,11 @@ schema9.index({ region: 1 });
8929
8777
  schema9.index({ "categories.name": 1 });
8930
8778
  schema9.index({ "associates.email": 1 });
8931
8779
  schema9.index({ slug: 1 });
8932
- var VendorModel = import_mongoose14.default.models.Vendor || import_mongoose14.default.model("Vendor", schema9);
8780
+ var VendorModel = import_mongoose13.default.models.Vendor || import_mongoose13.default.model("Vendor", schema9);
8933
8781
 
8934
8782
  // src/mongoose/vendor/VendorInfo.ts
8935
- var import_mongoose15 = __toESM(require("mongoose"));
8936
- var MongooseSchema14 = import_mongoose15.default.Schema;
8783
+ var import_mongoose14 = __toESM(require("mongoose"));
8784
+ var MongooseSchema14 = import_mongoose14.default.Schema;
8937
8785
  var AttributesSchema = new MongooseSchema14(
8938
8786
  {
8939
8787
  details: { required: false, type: String },
@@ -8976,23 +8824,23 @@ var schema10 = new MongooseSchema14(
8976
8824
  vendorId: {
8977
8825
  ref: "Vendor",
8978
8826
  required: true,
8979
- type: import_mongoose15.default.Schema.Types.ObjectId
8827
+ type: import_mongoose14.default.Schema.Types.ObjectId
8980
8828
  }
8981
8829
  },
8982
8830
  { timestamps: true }
8983
8831
  );
8984
- var VendorInfoModel = import_mongoose15.default.models.VendorInfo || import_mongoose15.default.model("VendorInfo", schema10);
8832
+ var VendorInfoModel = import_mongoose14.default.models.VendorInfo || import_mongoose14.default.model("VendorInfo", schema10);
8985
8833
 
8986
8834
  // src/mongoose/vendor/UnregisteredVendor.ts
8987
- var import_mongoose16 = __toESM(require("mongoose"));
8988
- var MongooseSchema15 = import_mongoose16.default.Schema;
8835
+ var import_mongoose15 = __toESM(require("mongoose"));
8836
+ var MongooseSchema15 = import_mongoose15.default.Schema;
8989
8837
  var invitationSchema = new MongooseSchema15(
8990
8838
  {
8991
8839
  dateTime: { required: true, type: [dateTimeSchema2] },
8992
8840
  inviterId: {
8993
8841
  ref: "Event",
8994
8842
  required: true,
8995
- type: import_mongoose16.default.Schema.Types.ObjectId
8843
+ type: import_mongoose15.default.Schema.Types.ObjectId
8996
8844
  }
8997
8845
  },
8998
8846
  { _id: false }
@@ -9006,7 +8854,7 @@ var schema11 = new MongooseSchema15(
9006
8854
  claimedByUserId: {
9007
8855
  ref: "User",
9008
8856
  required: false,
9009
- type: import_mongoose16.default.Schema.Types.ObjectId
8857
+ type: import_mongoose15.default.Schema.Types.ObjectId
9010
8858
  },
9011
8859
  deletedAt: { default: null, required: false, type: Date },
9012
8860
  email: { required: false, type: String },
@@ -9018,11 +8866,11 @@ var schema11 = new MongooseSchema15(
9018
8866
  );
9019
8867
  schema11.index({ name: 1 });
9020
8868
  schema11.index({ email: 1 });
9021
- var UnregisteredVendorModel = import_mongoose16.default.models.UnregisteredVendor || import_mongoose16.default.model("UnregisteredVendor", schema11);
8869
+ var UnregisteredVendorModel = import_mongoose15.default.models.UnregisteredVendor || import_mongoose15.default.model("UnregisteredVendor", schema11);
9022
8870
 
9023
8871
  // src/mongoose/event/Event.ts
9024
- var import_mongoose17 = __toESM(require("mongoose"));
9025
- var MongooseSchema16 = import_mongoose17.default.Schema;
8872
+ var import_mongoose16 = __toESM(require("mongoose"));
8873
+ var MongooseSchema16 = import_mongoose16.default.Schema;
9026
8874
  var schema12 = new MongooseSchema16(
9027
8875
  {
9028
8876
  ...baseResourceFields,
@@ -9032,7 +8880,7 @@ var schema12 = new MongooseSchema16(
9032
8880
  eventInfoId: {
9033
8881
  ref: "EventInfo",
9034
8882
  required: false,
9035
- type: import_mongoose17.default.Schema.Types.ObjectId
8883
+ type: import_mongoose16.default.Schema.Types.ObjectId
9036
8884
  },
9037
8885
  eventType: {
9038
8886
  enum: Object.values(EnumEventType),
@@ -9071,11 +8919,11 @@ schema12.index({ "associates.email": 1 });
9071
8919
  schema12.index({ deletedAt: 1 });
9072
8920
  schema12.index({ "dateTime.dateStatus": 1 });
9073
8921
  schema12.index({ slug: 1 });
9074
- var EventModel = import_mongoose17.default.models.Event || import_mongoose17.default.model("Event", schema12);
8922
+ var EventModel = import_mongoose16.default.models.Event || import_mongoose16.default.model("Event", schema12);
9075
8923
 
9076
8924
  // src/mongoose/Partner.ts
9077
- var import_mongoose18 = __toESM(require("mongoose"));
9078
- var MongooseSchema17 = import_mongoose18.default.Schema;
8925
+ var import_mongoose17 = __toESM(require("mongoose"));
8926
+ var MongooseSchema17 = import_mongoose17.default.Schema;
9079
8927
  var schema13 = new MongooseSchema17(
9080
8928
  {
9081
8929
  ...baseResourceFields,
@@ -9099,14 +8947,14 @@ schema13.index({ region: 1 });
9099
8947
  schema13.index({ "location.geo": "2dsphere" });
9100
8948
  schema13.index({ "associates.email": 1 });
9101
8949
  schema13.index({ slug: 1 });
9102
- var PartnerModel = import_mongoose18.default.models.Partner || import_mongoose18.default.model("Partner", schema13);
8950
+ var PartnerModel = import_mongoose17.default.models.Partner || import_mongoose17.default.model("Partner", schema13);
9103
8951
 
9104
8952
  // src/mongoose/Post.ts
9105
- var import_mongoose19 = __toESM(require("mongoose"));
9106
- var MongooseSchema18 = import_mongoose19.default.Schema;
8953
+ var import_mongoose18 = __toESM(require("mongoose"));
8954
+ var MongooseSchema18 = import_mongoose18.default.Schema;
9107
8955
  var contentSchema = new MongooseSchema18(
9108
8956
  {
9109
- contentData: import_mongoose19.Schema.Types.Mixed,
8957
+ contentData: import_mongoose18.Schema.Types.Mixed,
9110
8958
  contentOrder: { required: true, type: Number },
9111
8959
  contentType: {
9112
8960
  enum: Object.values(EnumPostContentType),
@@ -9162,11 +9010,11 @@ var schema14 = new MongooseSchema18(
9162
9010
  schema14.index({ title: 1 });
9163
9011
  schema14.index({ tags: 1 });
9164
9012
  schema14.index({ postType: 1, slug: 1 }, { unique: true });
9165
- var PostModel = import_mongoose19.default.models.Post || import_mongoose19.default.model("Post", schema14);
9013
+ var PostModel = import_mongoose18.default.models.Post || import_mongoose18.default.model("Post", schema14);
9166
9014
 
9167
9015
  // src/mongoose/AppSetting.ts
9168
- var import_mongoose20 = __toESM(require("mongoose"));
9169
- var MongooseSchema19 = import_mongoose20.default.Schema;
9016
+ var import_mongoose19 = __toESM(require("mongoose"));
9017
+ var MongooseSchema19 = import_mongoose19.default.Schema;
9170
9018
  var APP_SETTINGS_ID = "APP_SETTINGS_DOCUMENT_ID";
9171
9019
  var AppSettingSchema = new MongooseSchema19(
9172
9020
  {
@@ -9194,17 +9042,17 @@ var AppSettingSchema = new MongooseSchema19(
9194
9042
  },
9195
9043
  { timestamps: true }
9196
9044
  );
9197
- var AppSettingModel = import_mongoose20.default.models.AppSetting || import_mongoose20.default.model("AppSetting", AppSettingSchema);
9045
+ var AppSettingModel = import_mongoose19.default.models.AppSetting || import_mongoose19.default.model("AppSetting", AppSettingSchema);
9198
9046
 
9199
9047
  // src/mongoose/game/Game.ts
9200
- var import_mongoose24 = __toESM(require("mongoose"));
9048
+ var import_mongoose23 = __toESM(require("mongoose"));
9201
9049
 
9202
9050
  // src/mongoose/game/DailyClue.ts
9203
- var import_mongoose22 = __toESM(require("mongoose"));
9051
+ var import_mongoose21 = __toESM(require("mongoose"));
9204
9052
 
9205
9053
  // src/mongoose/game/utils.ts
9206
- var import_mongoose21 = __toESM(require("mongoose"));
9207
- var MongooseSchema20 = import_mongoose21.default.Schema;
9054
+ var import_mongoose20 = __toESM(require("mongoose"));
9055
+ var MongooseSchema20 = import_mongoose20.default.Schema;
9208
9056
  var schemaGameDate = new MongooseSchema20(
9209
9057
  {
9210
9058
  endDate: { required: true, type: Date },
@@ -9214,7 +9062,7 @@ var schemaGameDate = new MongooseSchema20(
9214
9062
  );
9215
9063
 
9216
9064
  // src/mongoose/game/DailyClue.ts
9217
- var MongooseSchema21 = import_mongoose22.default.Schema;
9065
+ var MongooseSchema21 = import_mongoose21.default.Schema;
9218
9066
  var schemaLetters = new MongooseSchema21(
9219
9067
  {
9220
9068
  collected: { required: false, type: [String] },
@@ -9245,8 +9093,8 @@ var schemaDailyClueGameData = new MongooseSchema21(
9245
9093
  );
9246
9094
 
9247
9095
  // src/mongoose/game/PuzzleGame.ts
9248
- var import_mongoose23 = __toESM(require("mongoose"));
9249
- var MongooseSchema22 = import_mongoose23.default.Schema;
9096
+ var import_mongoose22 = __toESM(require("mongoose"));
9097
+ var MongooseSchema22 = import_mongoose22.default.Schema;
9250
9098
  var schemaPuzzleAnswer = new MongooseSchema22(
9251
9099
  {
9252
9100
  answer: { required: true, type: String },
@@ -9291,7 +9139,7 @@ var schemaPuzzleGameData = new MongooseSchema22(
9291
9139
  );
9292
9140
 
9293
9141
  // src/mongoose/game/Game.ts
9294
- var MongooseSchema23 = import_mongoose24.default.Schema;
9142
+ var MongooseSchema23 = import_mongoose23.default.Schema;
9295
9143
  var gameDataSchemas = {
9296
9144
  [EnumGameType.DAILY_CLUE]: schemaDailyClueGameData,
9297
9145
  [EnumGameType.MINI_QUIZ]: schemaPuzzleGameData,
@@ -9351,11 +9199,11 @@ var schema15 = new MongooseSchema23(
9351
9199
  },
9352
9200
  { timestamps: true }
9353
9201
  );
9354
- var GameModel = import_mongoose24.default.models.Game || import_mongoose24.default.model("Game", schema15);
9202
+ var GameModel = import_mongoose23.default.models.Game || import_mongoose23.default.model("Game", schema15);
9355
9203
 
9356
9204
  // src/mongoose/School.ts
9357
- var import_mongoose25 = __toESM(require("mongoose"));
9358
- var MongooseSchema24 = import_mongoose25.default.Schema;
9205
+ var import_mongoose24 = __toESM(require("mongoose"));
9206
+ var MongooseSchema24 = import_mongoose24.default.Schema;
9359
9207
  var campaignsSchema = new MongooseSchema24(
9360
9208
  {
9361
9209
  endDate: { required: true, type: Date },
@@ -9397,11 +9245,11 @@ schema16.index(
9397
9245
  unique: true
9398
9246
  }
9399
9247
  );
9400
- var SchoolModel = import_mongoose25.default.models.School || import_mongoose25.default.model("School", schema16);
9248
+ var SchoolModel = import_mongoose24.default.models.School || import_mongoose24.default.model("School", schema16);
9401
9249
 
9402
9250
  // src/mongoose/Affiliate.ts
9403
- var import_mongoose26 = __toESM(require("mongoose"));
9404
- var MongooseSchema25 = import_mongoose26.default.Schema;
9251
+ var import_mongoose25 = __toESM(require("mongoose"));
9252
+ var MongooseSchema25 = import_mongoose25.default.Schema;
9405
9253
  var affiliateRewardSchema = new MongooseSchema25(
9406
9254
  {
9407
9255
  createdAt: { required: true, type: Date },
@@ -9419,9 +9267,10 @@ var affiliateRewardSchema = new MongooseSchema25(
9419
9267
  var affiliateResourceSchema = new MongooseSchema25(
9420
9268
  {
9421
9269
  resourceActive: { default: true, required: true, type: Boolean },
9270
+ resourceDeletedAt: { default: null, required: false, type: Date },
9422
9271
  resourceId: {
9423
9272
  required: true,
9424
- type: import_mongoose26.default.Schema.Types.ObjectId
9273
+ type: import_mongoose25.default.Schema.Types.ObjectId
9425
9274
  },
9426
9275
  resourceName: { required: true, type: String },
9427
9276
  resourceType: {
@@ -9500,7 +9349,238 @@ schema17.index(
9500
9349
  unique: true
9501
9350
  }
9502
9351
  );
9503
- var AffiliateModel = import_mongoose26.default.models.Affiliate || import_mongoose26.default.model("Affiliate", schema17);
9352
+ var AffiliateModel = import_mongoose25.default.models.Affiliate || import_mongoose25.default.model("Affiliate", schema17);
9353
+
9354
+ // src/service/promoCode/constants.ts
9355
+ var ACTIVE_NOT_DELETED_FILTER = {
9356
+ active: true,
9357
+ deletedAt: null
9358
+ };
9359
+
9360
+ // src/service/affiliate/activeAffiliateCodeExists.ts
9361
+ async function activeAffiliateCodeExists(affiliateCode) {
9362
+ const existing = await AffiliateModel.exists({
9363
+ ...ACTIVE_NOT_DELETED_FILTER,
9364
+ affiliateCode
9365
+ }).exec();
9366
+ return existing !== null;
9367
+ }
9368
+
9369
+ // src/service/affiliate/createAffiliateReward.ts
9370
+ var AFFILIATE_REWARDS = {
9371
+ [EnumAffiliateRewardType.NEW_EVENT_REGISTRATION]: {
9372
+ description: "10 points for new event registration (one-time reward)",
9373
+ value: 10
9374
+ },
9375
+ [EnumAffiliateRewardType.NEW_VENDOR_REGISTRATION]: {
9376
+ description: "5 points for new vendor registration (one-time reward)",
9377
+ value: 5
9378
+ },
9379
+ [EnumAffiliateRewardType.ACTIVE_VENDOR_PRO_SUBSCRIPTION]: {
9380
+ description: "3 points for active vendor pro subscription (monthly reward)",
9381
+ value: 3
9382
+ },
9383
+ [EnumAffiliateRewardType.ACTIVE_VENDOR_STANDARD_SUBSCRIPTION]: {
9384
+ description: "1 point for active vendor standard subscription (monthly reward)",
9385
+ value: 1
9386
+ },
9387
+ [EnumAffiliateRewardType.ACTIVE_VENDOR_BONUS_REWARD]: {
9388
+ description: "5 bonus points for every 10th active vendor (one-time reward)",
9389
+ value: 5
9390
+ },
9391
+ [EnumAffiliateRewardType.ACTIVE_EVENT_WITH_VENDOR_REGISTRATIONS]: {
9392
+ description: "50 points for active event with vendor registrations (one-time reward)",
9393
+ value: 50
9394
+ }
9395
+ };
9396
+ function createAffiliateReward(rewardType, createdAt) {
9397
+ const reward = AFFILIATE_REWARDS[rewardType];
9398
+ return {
9399
+ createdAt,
9400
+ redeemedAt: null,
9401
+ rewardDescription: reward.description,
9402
+ rewardType,
9403
+ rewardValue: reward.value
9404
+ };
9405
+ }
9406
+
9407
+ // src/service/affiliate/findAffiliateByPromoCode.ts
9408
+ async function findAffiliateByPromoCode(promoCode) {
9409
+ return AffiliateModel.findOne({
9410
+ affiliateCode: promoCode,
9411
+ deletedAt: null
9412
+ }).exec();
9413
+ }
9414
+
9415
+ // src/service/promoCode/normalizePromoCode.ts
9416
+ function normalizePromoCode(decoratedPromoCode) {
9417
+ const normalized = decoratedPromoCode?.trim().toUpperCase();
9418
+ return normalized || null;
9419
+ }
9420
+
9421
+ // src/service/affiliate/normalizeAffiliatePromoCodes.ts
9422
+ function normalizeAffiliatePromoCodes(promoCodes) {
9423
+ const normalized = (promoCodes ?? []).map((code) => normalizePromoCode(code)).filter((code) => code !== null);
9424
+ return [...new Set(normalized)];
9425
+ }
9426
+
9427
+ // src/service/database.ts
9428
+ var import_mongoose28 = __toESM(require("mongoose"));
9429
+ var connectToDatabase = async ({
9430
+ appName,
9431
+ dbName,
9432
+ dbPassword,
9433
+ dbUser,
9434
+ mongodbUri
9435
+ }) => {
9436
+ try {
9437
+ const mongoUri = mongodbUri ? mongodbUri : (
9438
+ // Fallback to MongoDB Atlas connection string
9439
+ `mongodb+srv://${dbUser}:${dbPassword}@${dbName}.mongodb.net/?retryWrites=true&w=majority&appName=${appName}`
9440
+ );
9441
+ await import_mongoose28.default.connect(mongoUri);
9442
+ const connectionType = mongodbUri ? "Local MongoDB" : "MongoDB Atlas";
9443
+ console.log(
9444
+ `${connectionType} connected from server/src/service/database.ts`
9445
+ );
9446
+ } catch (err) {
9447
+ console.error("Error connecting to MongoDB:", err);
9448
+ throw err;
9449
+ }
9450
+ };
9451
+
9452
+ // src/service/saveNotificationsInDb.ts
9453
+ async function saveNotificationsInDb(payload) {
9454
+ const { data, message, title, type, userIds } = payload;
9455
+ console.log("NOTIFICATION DATA", JSON.stringify(payload, null, 2));
9456
+ try {
9457
+ const notifications = userIds.map((userId) => ({
9458
+ data,
9459
+ isRead: false,
9460
+ message,
9461
+ title,
9462
+ type,
9463
+ userId
9464
+ }));
9465
+ await NotificationModel.insertMany(notifications);
9466
+ console.log(
9467
+ `Created ${notifications.length} notifications for ${userIds.length} users`
9468
+ );
9469
+ return [...new Set(userIds)];
9470
+ } catch (error) {
9471
+ console.error("Failed to create notifications:", error);
9472
+ return [];
9473
+ }
9474
+ }
9475
+
9476
+ // src/service/sendPushNotifications.ts
9477
+ var import_expo_server_sdk = require("expo-server-sdk");
9478
+ var expo = new import_expo_server_sdk.Expo();
9479
+ function extractTokensFromMessage(message) {
9480
+ return Array.isArray(message.to) ? message.to : [message.to];
9481
+ }
9482
+ function createPushMessages({
9483
+ tokens,
9484
+ message,
9485
+ title,
9486
+ data
9487
+ }) {
9488
+ const messages = [];
9489
+ const invalidTokens = [];
9490
+ for (const token of tokens) {
9491
+ if (!import_expo_server_sdk.Expo.isExpoPushToken(token)) {
9492
+ invalidTokens.push(token);
9493
+ continue;
9494
+ }
9495
+ messages.push({
9496
+ body: message,
9497
+ data: { ...data },
9498
+ sound: "tui.wav",
9499
+ title,
9500
+ to: token
9501
+ });
9502
+ }
9503
+ return { invalidTokens, messages };
9504
+ }
9505
+ function processChunkResults(tickets, chunk) {
9506
+ let successCount = 0;
9507
+ const failedTokens = [];
9508
+ for (const [ticketIndex, ticket] of tickets.entries()) {
9509
+ if (ticket.status === "error") {
9510
+ const message = chunk[ticketIndex];
9511
+ if (message) {
9512
+ const tokens = extractTokensFromMessage(message);
9513
+ if (ticket.details?.error === "DeviceNotRegistered") {
9514
+ failedTokens.push(...tokens);
9515
+ }
9516
+ console.log("Push notification error", {
9517
+ error: ticket.details?.error,
9518
+ tokens
9519
+ });
9520
+ }
9521
+ } else {
9522
+ successCount++;
9523
+ }
9524
+ }
9525
+ return { failedTokens, successCount };
9526
+ }
9527
+ async function sendChunk(chunk, chunkIndex) {
9528
+ try {
9529
+ const tickets = await expo.sendPushNotificationsAsync(chunk);
9530
+ const { successCount, failedTokens } = processChunkResults(tickets, chunk);
9531
+ console.log(
9532
+ `Chunk ${chunkIndex + 1}: Sent ${successCount}/${chunk.length} notifications successfully`
9533
+ );
9534
+ return { failedTokens, successCount };
9535
+ } catch (error) {
9536
+ console.log("Error sending Expo push notification chunk", {
9537
+ chunkIndex,
9538
+ chunkSize: chunk.length,
9539
+ error: error instanceof Error ? error.message : String(error)
9540
+ });
9541
+ return { failedTokens: [], successCount: 0 };
9542
+ }
9543
+ }
9544
+ async function sendPushNotifications({
9545
+ data,
9546
+ message,
9547
+ title,
9548
+ userIds
9549
+ }) {
9550
+ const pushTokens = await PushTokenModel.find({ userId: { $in: userIds } });
9551
+ const expoTokens = pushTokens.map((token) => token.token);
9552
+ if (!data) return;
9553
+ const { messages, invalidTokens } = createPushMessages({
9554
+ data,
9555
+ message,
9556
+ title,
9557
+ tokens: expoTokens
9558
+ });
9559
+ if (invalidTokens.length > 0) {
9560
+ console.log(`Found ${invalidTokens.length} invalid push tokens`);
9561
+ }
9562
+ if (messages.length === 0) {
9563
+ console.log("No valid messages to send after filtering tokens");
9564
+ return;
9565
+ }
9566
+ const chunks = expo.chunkPushNotifications(messages);
9567
+ let totalSuccessCount = 0;
9568
+ const allFailedTokens = [];
9569
+ for (const [chunkIndex, chunk] of chunks.entries()) {
9570
+ const { successCount, failedTokens } = await sendChunk(
9571
+ chunk,
9572
+ chunkIndex + 1
9573
+ );
9574
+ totalSuccessCount += successCount;
9575
+ allFailedTokens.push(...failedTokens);
9576
+ }
9577
+ console.log(
9578
+ `Sent push notification to ${totalSuccessCount}/${messages.length} tokens across ${chunks.length} chunks`
9579
+ );
9580
+ if (allFailedTokens.length > 0) {
9581
+ console.log(`Found ${allFailedTokens.length} failed push tokens`);
9582
+ }
9583
+ }
9504
9584
 
9505
9585
  // src/service/updateAdStatus.ts
9506
9586
  async function updateAdStatuses() {
@@ -9538,9 +9618,9 @@ async function updateAdStatuses() {
9538
9618
  }
9539
9619
 
9540
9620
  // src/service/associate.ts
9541
- var import_mongoose28 = __toESM(require("mongoose"));
9621
+ var import_mongoose30 = __toESM(require("mongoose"));
9542
9622
  function normalizeObjectId(id) {
9543
- return typeof id === "string" ? new import_mongoose28.default.Types.ObjectId(id) : id;
9623
+ return typeof id === "string" ? new import_mongoose30.default.Types.ObjectId(id) : id;
9544
9624
  }
9545
9625
  async function getAssociateEmailsForResource({
9546
9626
  normalizedResourceId,
@@ -9692,12 +9772,12 @@ async function updateVendorBasedOnUserLicense(userId, licenceType) {
9692
9772
  }
9693
9773
 
9694
9774
  // src/service/objectIdToString.ts
9695
- var import_mongoose31 = __toESM(require("mongoose"));
9775
+ var import_mongoose33 = __toESM(require("mongoose"));
9696
9776
  function convertObjectIdsToStrings(obj) {
9697
9777
  if (obj === null || obj === void 0) {
9698
9778
  return obj;
9699
9779
  }
9700
- if (obj instanceof import_mongoose31.default.Types.ObjectId) {
9780
+ if (obj instanceof import_mongoose33.default.Types.ObjectId) {
9701
9781
  return obj.toString();
9702
9782
  }
9703
9783
  if (obj instanceof Date) {
@@ -9880,10 +9960,17 @@ function updateRelationDatesToUnavailable(relationDates, eventDateTime) {
9880
9960
  }
9881
9961
  // Annotate the CommonJS export names for ESM import in node:
9882
9962
  0 && (module.exports = {
9963
+ ACTIVE_NOT_DELETED_FILTER,
9964
+ AFFILIATE_REWARDS,
9965
+ activeAffiliateCodeExists,
9883
9966
  connectToDatabase,
9884
9967
  convertObjectIdsToStrings,
9968
+ createAffiliateReward,
9885
9969
  didRemoveAnyEventDates,
9970
+ findAffiliateByPromoCode,
9886
9971
  findEventOrImportedMarketById,
9972
+ normalizeAffiliatePromoCodes,
9973
+ normalizePromoCode,
9887
9974
  saveNotificationsInDb,
9888
9975
  sendPushNotifications,
9889
9976
  updateAdStatuses,