@timardex/cluemart-server-shared 1.0.262 → 1.0.264

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.
@@ -32,6 +32,7 @@ var mongoose_exports = {};
32
32
  __export(mongoose_exports, {
33
33
  APP_SETTINGS_ID: () => APP_SETTINGS_ID,
34
34
  AdModel: () => AdModel,
35
+ AffiliateModel: () => AffiliateModel,
35
36
  AppSettingModel: () => AppSettingModel,
36
37
  CategorySchema: () => CategorySchema,
37
38
  ChatModel: () => ChatModel,
@@ -3555,6 +3556,7 @@ var gameScreenIdentifierList = [
3555
3556
  match: "/visitors"
3556
3557
  }
3557
3558
  ];
3559
+ var PROMO_CODE_PREFIX = "CM-";
3558
3560
  var EnumAdShowOn = /* @__PURE__ */ ((EnumAdShowOn2) => {
3559
3561
  EnumAdShowOn2["EVENTS_PAGE"] = "Events_page";
3560
3562
  EnumAdShowOn2["FRONT_PAGE"] = "Front_page";
@@ -3613,6 +3615,12 @@ var EnumGameType = /* @__PURE__ */ ((EnumGameType2) => {
3613
3615
  EnumGameType2["ODD_ONE_OUT"] = "oddOneOut";
3614
3616
  return EnumGameType2;
3615
3617
  })(EnumGameType || {});
3618
+ var EnumAffiliateRewardType = /* @__PURE__ */ ((EnumAffiliateRewardType2) => {
3619
+ EnumAffiliateRewardType2["NEW_EVENT_REGISTRATION"] = "NEW_EVENT_REGISTRATION";
3620
+ EnumAffiliateRewardType2["NEW_VENDOR_REGISTRATION"] = "NEW_VENDOR_REGISTRATION";
3621
+ EnumAffiliateRewardType2["NEW_PARTNER_REGISTRATION"] = "NEW_PARTNER_REGISTRATION";
3622
+ return EnumAffiliateRewardType2;
3623
+ })(EnumAffiliateRewardType || {});
3616
3624
  var mapArrayToOptions = (items) => items.map((item) => ({
3617
3625
  label: item,
3618
3626
  value: item
@@ -3630,6 +3638,8 @@ var paymentMethodOptions = mapArrayToOptions(
3630
3638
  Object.values(EnumPaymentMethod)
3631
3639
  );
3632
3640
  var CLUEMART_MAIN_DOMAIN_URL = "https://cluemart.co.nz";
3641
+ var CM_SCHOOL_PROMO_CODE = `${PROMO_CODE_PREFIX}SCHOOL`;
3642
+ var CM_AFFILIATE_PROMO_CODE = `${PROMO_CODE_PREFIX}AFFILIATE`;
3633
3643
  import_dayjs.default.extend(import_customParseFormat.default);
3634
3644
  import_dayjs.default.extend(import_utc.default);
3635
3645
  import_dayjs.default.extend(import_timezone.default);
@@ -5023,12 +5033,6 @@ var REDEEMED_REWARD_FIELDS_FRAGMENT = gql`
5023
5033
  redeemedAt
5024
5034
  }
5025
5035
  `;
5026
- var AFFILIATE_FIELDS_FRAGMENT = gql`
5027
- fragment AffiliateFields on AffiliateType {
5028
- affiliateCode
5029
- pointsAvailable
5030
- }
5031
- `;
5032
5036
  var USER_FIELDS_FRAGMENT = gql`
5033
5037
  fragment UserFields on UserType {
5034
5038
  _id
@@ -5036,9 +5040,7 @@ var USER_FIELDS_FRAGMENT = gql`
5036
5040
  associates {
5037
5041
  ...AssociatesFields
5038
5042
  }
5039
- affiliate {
5040
- ...AffiliateFields
5041
- }
5043
+ affiliate
5042
5044
  avatar {
5043
5045
  ...ResourceImageFields
5044
5046
  }
@@ -5082,7 +5084,6 @@ var USER_FIELDS_FRAGMENT = gql`
5082
5084
  ${LICENCE_FIELDS_FRAGMENT}
5083
5085
  ${LOCATION_FIELDS_FRAGMENT}
5084
5086
  ${REDEEMED_REWARD_FIELDS_FRAGMENT}
5085
- ${AFFILIATE_FIELDS_FRAGMENT}
5086
5087
  `;
5087
5088
  var STALL_TYPE_FIELDS_FRAGMENT = gql`
5088
5089
  fragment StallTypeFields on StallTypeType {
@@ -7428,6 +7429,62 @@ var REQUEST_MARKETING_MATERIAL_MUTATION = gql`
7428
7429
  }
7429
7430
  }
7430
7431
  `;
7432
+ var AFFILIATE_REWARD_FIELDS_FRAGMENT = gql`
7433
+ fragment AffiliateRewardFields on AffiliateRewardType {
7434
+ createdAt
7435
+ deletedAt
7436
+ redeemedAt
7437
+ rewardDescription
7438
+ rewardType
7439
+ rewardValue
7440
+ updatedAt
7441
+ }
7442
+ `;
7443
+ var AFFILIATE_RESOURCE_FIELDS_FRAGMENT = gql`
7444
+ fragment AffiliateResourceFields on AffiliateResourceType {
7445
+ resourceActive
7446
+ resourceId
7447
+ resourceType
7448
+ rewards {
7449
+ ...AffiliateRewardFields
7450
+ }
7451
+ }
7452
+ ${AFFILIATE_REWARD_FIELDS_FRAGMENT}
7453
+ `;
7454
+ var AFFILIATE_FIELDS_FRAGMENT = gql`
7455
+ fragment AffiliateFields on AffiliateType {
7456
+ _id
7457
+ affiliateCode
7458
+ affiliateResources {
7459
+ ...AffiliateResourceFields
7460
+ }
7461
+ createdAt
7462
+ deletedAt
7463
+ overallPoints
7464
+ owner {
7465
+ ...OwnerFields
7466
+ }
7467
+ updatedAt
7468
+ }
7469
+ ${AFFILIATE_RESOURCE_FIELDS_FRAGMENT}
7470
+ ${OWNER_FIELDS_FRAGMENT}
7471
+ `;
7472
+ var GET_AFFILIATE = gql`
7473
+ query getAffiliate($_id: ID!) {
7474
+ affiliate(_id: $_id) {
7475
+ ...AffiliateFields
7476
+ }
7477
+ }
7478
+ ${AFFILIATE_FIELDS_FRAGMENT}
7479
+ `;
7480
+ var GET_AFFILIATES = gql`
7481
+ query getAffiliates {
7482
+ affiliates {
7483
+ ...AffiliateFields
7484
+ }
7485
+ }
7486
+ ${AFFILIATE_FIELDS_FRAGMENT}
7487
+ `;
7431
7488
  var PKG = "@timardex/cluemart-shared";
7432
7489
  var IMAGE_EXTENSION = ".webp";
7433
7490
  var posterIds = [
@@ -8442,19 +8499,13 @@ var redeemedRewardSchema = new MongooseSchema11(
8442
8499
  },
8443
8500
  { _id: false }
8444
8501
  );
8445
- var affiliateSchema = new MongooseSchema11(
8446
- {
8447
- affiliateCode: { required: true, type: String },
8448
- pointsAvailable: { required: true, type: Number }
8449
- },
8450
- { _id: false }
8451
- );
8452
8502
  var schema7 = new MongooseSchema11(
8453
8503
  {
8454
8504
  active: { default: false, required: true, type: Boolean },
8455
8505
  affiliate: {
8506
+ ref: "Affiliate",
8456
8507
  required: false,
8457
- type: affiliateSchema
8508
+ type: import_mongoose11.default.Schema.Types.ObjectId
8458
8509
  },
8459
8510
  associates: {
8460
8511
  required: false,
@@ -8554,7 +8605,6 @@ var schema7 = new MongooseSchema11(
8554
8605
  },
8555
8606
  { strict: false, timestamps: true }
8556
8607
  );
8557
- schema7.index({ "affiliate.affiliateCode": 1 }, { sparse: true, unique: true });
8558
8608
  schema7.index({ "associates.email": 1 });
8559
8609
  schema7.index({ "licences.expiryDate": 1 });
8560
8610
  schema7.index({ "licences.licenceType": 1 });
@@ -9045,9 +9095,9 @@ var gameDataSchemas = {
9045
9095
  [EnumGameType.ODD_ONE_OUT]: schemaPuzzleGameData
9046
9096
  };
9047
9097
  var gameDataDefinition = Object.fromEntries(
9048
- Object.entries(gameDataSchemas).map(([key, schema17]) => [
9098
+ Object.entries(gameDataSchemas).map(([key, schema18]) => [
9049
9099
  key,
9050
- { default: null, required: false, type: schema17 }
9100
+ { default: null, required: false, type: schema18 }
9051
9101
  ])
9052
9102
  );
9053
9103
  var gameHistorySchema = new MongooseSchema23(
@@ -9137,12 +9187,84 @@ var schema16 = new MongooseSchema24(
9137
9187
  },
9138
9188
  { timestamps: true }
9139
9189
  );
9140
- schema16.index({ schoolCode: 1 }, { unique: true });
9190
+ schema16.index(
9191
+ { schoolCode: 1 },
9192
+ {
9193
+ partialFilterExpression: { active: true, deletedAt: null },
9194
+ unique: true
9195
+ }
9196
+ );
9141
9197
  var SchoolModel = import_mongoose24.default.models.School || import_mongoose24.default.model("School", schema16);
9198
+
9199
+ // src/mongoose/Affiliate.ts
9200
+ var import_mongoose25 = __toESM(require("mongoose"));
9201
+ var MongooseSchema25 = import_mongoose25.default.Schema;
9202
+ var affiliateRewardSchema = new MongooseSchema25(
9203
+ {
9204
+ createdAt: { required: true, type: Date },
9205
+ deletedAt: { default: null, required: false, type: Date },
9206
+ redeemedAt: { default: null, required: false, type: Date },
9207
+ rewardDescription: { required: true, type: String },
9208
+ rewardType: {
9209
+ enum: Object.values(EnumAffiliateRewardType),
9210
+ required: true,
9211
+ type: String
9212
+ },
9213
+ rewardValue: { required: true, type: Number },
9214
+ updatedAt: { default: null, required: false, type: Date }
9215
+ },
9216
+ { _id: false }
9217
+ );
9218
+ var affiliateResourceSchema = new MongooseSchema25(
9219
+ {
9220
+ resourceActive: { default: true, required: true, type: Boolean },
9221
+ resourceId: {
9222
+ required: true,
9223
+ type: import_mongoose25.default.Schema.Types.ObjectId
9224
+ },
9225
+ resourceType: {
9226
+ enum: Object.values(EnumResourceType),
9227
+ required: true,
9228
+ type: String
9229
+ },
9230
+ rewards: {
9231
+ default: [],
9232
+ required: false,
9233
+ type: [affiliateRewardSchema]
9234
+ }
9235
+ },
9236
+ { _id: false }
9237
+ );
9238
+ var schema17 = new MongooseSchema25(
9239
+ {
9240
+ affiliateCode: { required: true, type: String },
9241
+ affiliateResources: {
9242
+ default: [],
9243
+ required: false,
9244
+ type: [affiliateResourceSchema]
9245
+ },
9246
+ deletedAt: { default: null, required: false, type: Date },
9247
+ overallPoints: { default: 0, required: true, type: Number },
9248
+ owner: {
9249
+ required: true,
9250
+ type: OwnerTypeSchema
9251
+ }
9252
+ },
9253
+ { timestamps: true }
9254
+ );
9255
+ schema17.index(
9256
+ { affiliateCode: 1 },
9257
+ {
9258
+ partialFilterExpression: { deletedAt: null },
9259
+ unique: true
9260
+ }
9261
+ );
9262
+ var AffiliateModel = import_mongoose25.default.models.Affiliate || import_mongoose25.default.model("Affiliate", schema17);
9142
9263
  // Annotate the CommonJS export names for ESM import in node:
9143
9264
  0 && (module.exports = {
9144
9265
  APP_SETTINGS_ID,
9145
9266
  AdModel,
9267
+ AffiliateModel,
9146
9268
  AppSettingModel,
9147
9269
  CategorySchema,
9148
9270
  ChatModel,