@timardex/cluemart-server-shared 1.0.179 → 1.0.200

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/index.cjs CHANGED
@@ -7343,7 +7343,12 @@ var gameScreenIdentifierList = [
7343
7343
  match: "/events/events-near-me"
7344
7344
  },
7345
7345
  {
7346
- clue: "A collection of things worth attending.",
7346
+ clue: "Where events appear as pins on a map.",
7347
+ id: "events-map",
7348
+ match: "/events/events-map"
7349
+ },
7350
+ {
7351
+ clue: "A collection of events worth attending.",
7347
7352
  id: "events",
7348
7353
  match: "/events"
7349
7354
  },
@@ -7436,6 +7441,7 @@ function normalizeUrl(url) {
7436
7441
  }
7437
7442
  return url;
7438
7443
  }
7444
+ var CLUEMART_MAIN_DOMAIN_URL = "https://cluemart.co.nz";
7439
7445
  var SCHOOL_MIN_STUDENT_COUNT = 300;
7440
7446
  var packagingTypes = [
7441
7447
  "Biodegradable",
@@ -8841,7 +8847,6 @@ var USER_FIELDS_FRAGMENT = gql`
8841
8847
  platform
8842
8848
  preferredRegion
8843
8849
  promoCodes
8844
- refreshToken
8845
8850
  role
8846
8851
  school
8847
8852
  termsAgreement {
@@ -9091,7 +9096,10 @@ var GET_EVENT_BY_PLACE_ID = gql`
9091
9096
  ${EVENT_LIST_ITEM}
9092
9097
  `;
9093
9098
  var GET_EVENTS_BY_REGION = gql`
9094
- query getEventsByRegion($region: String!, $options: EventsByRegionOptions) {
9099
+ query getEventsByRegion(
9100
+ $region: String!
9101
+ $options: ResourcesByRegionOptions
9102
+ ) {
9095
9103
  eventsByRegion(region: $region, options: $options) {
9096
9104
  ...EventListItemFields
9097
9105
  }
@@ -9099,7 +9107,7 @@ var GET_EVENTS_BY_REGION = gql`
9099
9107
  ${EVENT_LIST_ITEM}
9100
9108
  `;
9101
9109
  var SEARCH_EVENTS = gql`
9102
- query searchEvents($region: String, $search: String,$tags: [String]) {
9110
+ query searchEvents($region: String, $search: String, $tags: [String]) {
9103
9111
  eventsSearch(region: $region, search: $search, tags: $tags) {
9104
9112
  ...EventListItemFields
9105
9113
  }
@@ -9323,8 +9331,11 @@ var GET_VENDOR = gql`
9323
9331
  ${VENDOR}
9324
9332
  `;
9325
9333
  var GET_VENDORS_BY_REGION = gql`
9326
- query getVendorsByRegion($region: String!) {
9327
- vendorsByRegion(region: $region) {
9334
+ query getVendorsByRegion(
9335
+ $region: String!
9336
+ $options: ResourcesByRegionOptions
9337
+ ) {
9338
+ vendorsByRegion(region: $region, options: $options) {
9328
9339
  ...VendorFields
9329
9340
  }
9330
9341
  }
@@ -9720,8 +9731,11 @@ var GET_PARTNER = gql`
9720
9731
  ${PARTNER}
9721
9732
  `;
9722
9733
  var GET_PARTNERS_BY_REGION = gql`
9723
- query getPartnersByRegion($region: String!) {
9724
- partnersByRegion(region: $region) {
9734
+ query getPartnersByRegion(
9735
+ $region: String!
9736
+ $options: ResourcesByRegionOptions
9737
+ ) {
9738
+ partnersByRegion(region: $region, options: $options) {
9725
9739
  ...PartnerFields
9726
9740
  }
9727
9741
  }
@@ -10940,7 +10954,7 @@ var emailOptionalSchema = create$6().nullable().notRequired().transform(
10940
10954
  (value) => !value || create$6().email().isValidSync(value)
10941
10955
  ).label("Email");
10942
10956
  var mobileRegex = /^02\d{7,9}$/;
10943
- var landlineRegex = /^(0(3|4|6|7|9)[0-9]{7})$/;
10957
+ var landlineRegex = /^0[34679]\d{7}$/;
10944
10958
  var mobilePhoneSchema = create$6().label("Mobile Phone").nullable().notRequired().test(
10945
10959
  "mobile-phone",
10946
10960
  "Mobile must start with 02 and be 9\u201311 digits",
@@ -11325,12 +11339,12 @@ var validateVerificationTokenSchema = create$3().shape({
11325
11339
  email: emailRequiredSchema,
11326
11340
  verificationToken: create$6().required("Verification code is required").matches(/^\d{6}$/, "Verification code must be exactly 6 digits")
11327
11341
  });
11328
- var EnumAdShowOn = /* @__PURE__ */ ((EnumAdShowOn3) => {
11329
- EnumAdShowOn3["EVENTS_PAGE"] = "Events_page";
11330
- EnumAdShowOn3["FRONT_PAGE"] = "Front_page";
11331
- EnumAdShowOn3["PARTNERS_PAGE"] = "Partners_page";
11332
- EnumAdShowOn3["VENDORS_PAGE"] = "Vendors_page";
11333
- return EnumAdShowOn3;
11342
+ var EnumAdShowOn = /* @__PURE__ */ ((EnumAdShowOn2) => {
11343
+ EnumAdShowOn2["EVENTS_PAGE"] = "Events_page";
11344
+ EnumAdShowOn2["FRONT_PAGE"] = "Front_page";
11345
+ EnumAdShowOn2["PARTNERS_PAGE"] = "Partners_page";
11346
+ EnumAdShowOn2["VENDORS_PAGE"] = "Vendors_page";
11347
+ return EnumAdShowOn2;
11334
11348
  })(EnumAdShowOn || {});
11335
11349
  var EnumAdStatus = /* @__PURE__ */ ((EnumAdStatus2) => {
11336
11350
  EnumAdStatus2["ACTIVE"] = "Active";
@@ -11349,15 +11363,15 @@ var EnumAdStyle = /* @__PURE__ */ ((EnumAdStyle2) => {
11349
11363
  return EnumAdStyle2;
11350
11364
  })(EnumAdStyle || {});
11351
11365
  var adResourceSchema = create$3({
11352
- adDescription: create$6().nullable().trim().required("Ad description is required").max(150, "Ad description must be at most 150 characters"),
11353
- adImage: create$6().nullable().required("Ad image is required"),
11354
- adStyle: create$8().nullable().oneOf(Object.values(EnumAdStyle), "Please select a valid ad style").required("Ad style is required"),
11355
- adTitle: create$6().nullable().trim().required("Ad title is required").max(30, "Ad title must be at most 30 characters"),
11356
- adType: create$8().nullable().oneOf(Object.values(EnumAdType), "Please select a valid ad type").required("Ad type is required"),
11357
- resourceId: create$6().nullable().required("Resource ID is required"),
11358
- resourceName: create$6().nullable().required("Resource name is required"),
11359
- resourceRegion: create$6().nullable().required("Resource region is required"),
11360
- resourceType: create$8().nullable().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource type is required")
11366
+ adDescription: create$6().trim().required("Ad description is required").max(150, "Ad description must be at most 150 characters"),
11367
+ adImage: create$6().required("Ad image is required"),
11368
+ adStyle: create$8().oneOf(Object.values(EnumAdStyle), "Please select a valid ad style").required("Ad style is required"),
11369
+ adTitle: create$6().trim().required("Ad title is required").max(30, "Ad title must be at most 30 characters"),
11370
+ adType: create$8().oneOf(Object.values(EnumAdType), "Please select a valid ad type").required("Ad type is required"),
11371
+ resourceId: create$6().required("Resource ID is required"),
11372
+ resourceName: create$6().required("Resource name is required"),
11373
+ resourceRegion: create$6().required("Resource region is required"),
11374
+ resourceType: create$8().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource type is required")
11361
11375
  });
11362
11376
  var adSchema = create$3().shape({
11363
11377
  active: create$7().required("Active status is required"),
@@ -11387,7 +11401,8 @@ var adSchema = create$3().shape({
11387
11401
  if (!value) return false;
11388
11402
  return value > /* @__PURE__ */ new Date();
11389
11403
  }),
11390
- otherwise: () => create$4().nullable().notRequired()
11404
+ // Keep `start` optional (not null) when ACTIVE to match TS type `start?: Date`.
11405
+ otherwise: () => create$4().notRequired()
11391
11406
  }),
11392
11407
  targetRegion: create$2().of(create$6().required()).min(1, "At least one target region is required").required("Target region is required")
11393
11408
  });
@@ -11515,6 +11530,31 @@ var contactUsSchema = create$3().shape({
11515
11530
  lastName: create$6().label("Last Name").required("Last name is required"),
11516
11531
  message: create$6().label("Message").required("Message is required")
11517
11532
  });
11533
+ var defaultValues8 = {
11534
+ active: true,
11535
+ // Use a future default so yup "future date" rules pass on first submit.
11536
+ end: new Date(Date.now() + 7 * 24 * 60 * 60 * 1e3),
11537
+ resource: {
11538
+ adDescription: "",
11539
+ adImage: "",
11540
+ adStyle: "Bloom",
11541
+ adTitle: "",
11542
+ adType: "Sponsored",
11543
+ resourceId: "",
11544
+ resourceName: "",
11545
+ resourceRegion: "",
11546
+ resourceType: "event"
11547
+ /* EVENT */
11548
+ },
11549
+ showOn: [
11550
+ "Front_page"
11551
+ /* FRONT_PAGE */
11552
+ ],
11553
+ // `start` is only required (and must be future) when status !== ACTIVE.
11554
+ start: void 0,
11555
+ status: "Active",
11556
+ targetRegion: []
11557
+ };
11518
11558
  var schoolSchema = create$3().shape({
11519
11559
  active: create$7().required("Active is required"),
11520
11560
  contactDetails: contactDetailsSchema,
@@ -11576,8 +11616,9 @@ var badgeFiles = Object.fromEntries(
11576
11616
  var logoIds = [
11577
11617
  "googleMaps-logo-dark",
11578
11618
  "googleMaps-logo-light",
11579
- "logo",
11580
- "logo-atr"
11619
+ "logo-atr",
11620
+ "logo-dark",
11621
+ "logo"
11581
11622
  ];
11582
11623
  var logoFiles = Object.fromEntries(
11583
11624
  logoIds.map((id) => [id, `${id}${IMAGE_EXTENSION}`])
@@ -11585,6 +11626,7 @@ var logoFiles = Object.fromEntries(
11585
11626
  var otherImagesIds = [
11586
11627
  "banner-horizontal",
11587
11628
  "banner-vertical",
11629
+ "gazebo-top",
11588
11630
  "qr-code",
11589
11631
  "store-android",
11590
11632
  "store-ios"
@@ -11612,7 +11654,7 @@ var otherImages = Object.fromEntries(
11612
11654
  );
11613
11655
  var RELATION_SHARE_INVITATION = "invitation";
11614
11656
  var RELATION_SHARE_APPLICATION = "application";
11615
- var SHARE_SITE_URL = "https://cluemart.co.nz";
11657
+ var SHARE_SITE_URL = CLUEMART_MAIN_DOMAIN_URL;
11616
11658
  var SHARE_CALENDAR_ICON = "\u{1F4C5}";
11617
11659
  var SHARE_MARKET_DATES_SECTION_HEADING = `${SHARE_CALENDAR_ICON} Market dates:`;
11618
11660
  var SHARE_CHECKMARK_ICON = "\u2705";
@@ -11952,6 +11994,7 @@ var refundPolicySchema = new MongooseSchema4(
11952
11994
  );
11953
11995
  var schema2 = new MongooseSchema4(
11954
11996
  {
11997
+ active: { default: true, type: Boolean },
11955
11998
  applicationDeadlineHours: { required: true, type: Number },
11956
11999
  dateTime: { required: true, type: [dateTimeSchema2] },
11957
12000
  eventId: {
@@ -12393,7 +12436,11 @@ var schema5 = new MongooseSchema9(
12393
12436
  type: String
12394
12437
  },
12395
12438
  token: { required: true, type: String },
12396
- userId: { required: true, type: import_mongoose9.default.Schema.Types.ObjectId }
12439
+ userId: {
12440
+ ref: "User",
12441
+ required: true,
12442
+ type: import_mongoose9.default.Schema.Types.ObjectId
12443
+ }
12397
12444
  },
12398
12445
  { timestamps: true }
12399
12446
  );
@@ -12736,6 +12783,7 @@ var AttributesSchema = new MongooseSchema14(
12736
12783
  );
12737
12784
  var schema10 = new MongooseSchema14(
12738
12785
  {
12786
+ active: { default: true, type: Boolean },
12739
12787
  compliance: {
12740
12788
  foodBeverageLicense: { default: false, required: false, type: Boolean },
12741
12789
  liabilityInsurance: { default: false, required: false, type: Boolean }
@@ -13467,12 +13515,12 @@ async function removeAssociateFromResource({
13467
13515
  // src/service/vendor.ts
13468
13516
  async function updateVendorBasedOnUserLicense(userId, licenceType) {
13469
13517
  try {
13470
- const user = await UserModel.findById(userId).select("vendor").lean();
13518
+ const user = await UserModel.findById(userId).select("vendor").lean().exec();
13471
13519
  if (!user?.vendor) {
13472
13520
  console.warn(`[updateVendor] No vendor found for userId=${userId}`);
13473
13521
  return;
13474
13522
  }
13475
- const vendor = await VendorModel.findById(user.vendor).lean();
13523
+ const vendor = await VendorModel.findById(user.vendor).lean().exec();
13476
13524
  if (!vendor) {
13477
13525
  console.warn(`[updateVendor] Vendor not found for id=${user.vendor}`);
13478
13526
  return;