@timardex/cluemart-server-shared 1.0.207 → 1.0.210
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/{chunk-AZS3BEZ3.mjs → chunk-7C3KPJ33.mjs} +44 -9
- package/dist/chunk-7C3KPJ33.mjs.map +1 -0
- package/dist/index.cjs +172 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.mjs +169 -9
- package/dist/index.mjs.map +1 -1
- package/dist/mongoose/index.cjs +38 -8
- package/dist/mongoose/index.cjs.map +1 -1
- package/dist/mongoose/index.mjs +1 -1
- package/dist/service/index.cjs +170 -9
- package/dist/service/index.cjs.map +1 -1
- package/dist/service/index.d.mts +6 -1
- package/dist/service/index.d.ts +6 -1
- package/dist/service/index.mjs +134 -3
- package/dist/service/index.mjs.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-AZS3BEZ3.mjs.map +0 -1
package/dist/mongoose/index.mjs
CHANGED
package/dist/service/index.cjs
CHANGED
|
@@ -37,6 +37,7 @@ __export(service_exports, {
|
|
|
37
37
|
saveNotificationsInDb: () => saveNotificationsInDb,
|
|
38
38
|
sendPushNotifications: () => sendPushNotifications,
|
|
39
39
|
updateAdStatuses: () => updateAdStatuses,
|
|
40
|
+
updateAllEventDateTimeStatuses: () => updateAllEventDateTimeStatuses,
|
|
40
41
|
updateRelationDatesToUnavailable: () => updateRelationDatesToUnavailable,
|
|
41
42
|
updateVendorBasedOnUserLicense: () => updateVendorBasedOnUserLicense
|
|
42
43
|
});
|
|
@@ -3430,6 +3431,7 @@ var EnumEventDateStatus = /* @__PURE__ */ ((EnumEventDateStatus22) => {
|
|
|
3430
3431
|
EnumEventDateStatus22["ENDED"] = "Ended";
|
|
3431
3432
|
EnumEventDateStatus22["RE_SCHEDULED"] = "Rescheduled";
|
|
3432
3433
|
EnumEventDateStatus22["CANCELED"] = "Canceled";
|
|
3434
|
+
EnumEventDateStatus22["INVALID"] = "Invalid";
|
|
3433
3435
|
return EnumEventDateStatus22;
|
|
3434
3436
|
})(EnumEventDateStatus || {});
|
|
3435
3437
|
var EnumSubscriptionStatus = /* @__PURE__ */ ((EnumSubscriptionStatus22) => {
|
|
@@ -3546,6 +3548,8 @@ var gameScreenIdentifierList = [
|
|
|
3546
3548
|
match: "/visitors"
|
|
3547
3549
|
}
|
|
3548
3550
|
];
|
|
3551
|
+
var dateFormat = "DD-MM-YYYY";
|
|
3552
|
+
var timeFormat = "HH:mm";
|
|
3549
3553
|
import_dayjs.default.extend(import_customParseFormat.default);
|
|
3550
3554
|
import_dayjs.default.extend(import_utc.default);
|
|
3551
3555
|
import_dayjs.default.extend(import_timezone.default);
|
|
@@ -5211,8 +5215,8 @@ var EVENT = gql`
|
|
|
5211
5215
|
${RELATION_DATES_FRAGMENT}
|
|
5212
5216
|
`;
|
|
5213
5217
|
var GET_EVENTS = gql`
|
|
5214
|
-
query getEvents {
|
|
5215
|
-
events {
|
|
5218
|
+
query getEvents($dateStatus: EnumEventDateStatus) {
|
|
5219
|
+
events(dateStatus: $dateStatus) {
|
|
5216
5220
|
...EventListItemFields
|
|
5217
5221
|
}
|
|
5218
5222
|
}
|
|
@@ -5238,24 +5242,49 @@ var GET_EVENTS_BY_REGION = gql`
|
|
|
5238
5242
|
query getEventsByRegion(
|
|
5239
5243
|
$region: String!
|
|
5240
5244
|
$options: ResourcesByRegionOptions
|
|
5245
|
+
$dateStatus: EnumEventDateStatus
|
|
5241
5246
|
) {
|
|
5242
|
-
eventsByRegion(
|
|
5247
|
+
eventsByRegion(
|
|
5248
|
+
region: $region
|
|
5249
|
+
options: $options
|
|
5250
|
+
dateStatus: $dateStatus
|
|
5251
|
+
) {
|
|
5243
5252
|
...EventListItemFields
|
|
5244
5253
|
}
|
|
5245
5254
|
}
|
|
5246
5255
|
${EVENT_LIST_ITEM}
|
|
5247
5256
|
`;
|
|
5248
5257
|
var SEARCH_EVENTS = gql`
|
|
5249
|
-
query searchEvents(
|
|
5250
|
-
|
|
5258
|
+
query searchEvents(
|
|
5259
|
+
$region: String
|
|
5260
|
+
$search: String
|
|
5261
|
+
$tags: [String]
|
|
5262
|
+
$dateStatus: EnumEventDateStatus
|
|
5263
|
+
) {
|
|
5264
|
+
eventsSearch(
|
|
5265
|
+
region: $region
|
|
5266
|
+
search: $search
|
|
5267
|
+
tags: $tags
|
|
5268
|
+
dateStatus: $dateStatus
|
|
5269
|
+
) {
|
|
5251
5270
|
...EventListItemFields
|
|
5252
5271
|
}
|
|
5253
5272
|
}
|
|
5254
5273
|
${EVENT_LIST_ITEM}
|
|
5255
5274
|
`;
|
|
5256
5275
|
var GET_EVENTS_NEAR_ME = gql`
|
|
5257
|
-
query getEventsNearMe(
|
|
5258
|
-
|
|
5276
|
+
query getEventsNearMe(
|
|
5277
|
+
$latitude: Float!
|
|
5278
|
+
$longitude: Float!
|
|
5279
|
+
$radius: Int
|
|
5280
|
+
$dateStatus: EnumEventDateStatus
|
|
5281
|
+
) {
|
|
5282
|
+
eventsNearMe(
|
|
5283
|
+
latitude: $latitude
|
|
5284
|
+
longitude: $longitude
|
|
5285
|
+
radius: $radius
|
|
5286
|
+
dateStatus: $dateStatus
|
|
5287
|
+
) {
|
|
5259
5288
|
...EventListItemFields
|
|
5260
5289
|
}
|
|
5261
5290
|
}
|
|
@@ -7331,7 +7360,7 @@ async function saveNotificationsInDb(payload) {
|
|
|
7331
7360
|
// src/service/sendPushNotifications.ts
|
|
7332
7361
|
var import_expo_server_sdk = require("expo-server-sdk");
|
|
7333
7362
|
|
|
7334
|
-
// node_modules/@timardex/cluemart-shared/dist/chunk-
|
|
7363
|
+
// node_modules/@timardex/cluemart-shared/dist/chunk-4SNW63TJ.mjs
|
|
7335
7364
|
var EnumOSPlatform2 = /* @__PURE__ */ ((EnumOSPlatform22) => {
|
|
7336
7365
|
EnumOSPlatform22["ANDROID"] = "android";
|
|
7337
7366
|
EnumOSPlatform22["IOS"] = "ios";
|
|
@@ -8127,6 +8156,8 @@ var schema5 = new MongooseSchema9(
|
|
|
8127
8156
|
schema5.index({ "location.geo": "2dsphere" });
|
|
8128
8157
|
schema5.index({ name: 1 });
|
|
8129
8158
|
schema5.index({ region: 1 });
|
|
8159
|
+
schema5.index({ deletedAt: 1 });
|
|
8160
|
+
schema5.index({ "dateTime.dateStatus": 1 });
|
|
8130
8161
|
var GoogleImportedMarketModel = import_mongoose10.default.models.GoogleImportedMarket || import_mongoose10.default.model("GoogleImportedMarket", schema5);
|
|
8131
8162
|
|
|
8132
8163
|
// src/mongoose/ResourceActivity.ts
|
|
@@ -8609,6 +8640,8 @@ schema12.index({ region: 1 });
|
|
|
8609
8640
|
schema12.index({ "location.geo": "2dsphere" });
|
|
8610
8641
|
schema12.index({ tags: 1 });
|
|
8611
8642
|
schema12.index({ "associates.email": 1 });
|
|
8643
|
+
schema12.index({ deletedAt: 1 });
|
|
8644
|
+
schema12.index({ "dateTime.dateStatus": 1 });
|
|
8612
8645
|
var EventModel = import_mongoose17.default.models.Event || import_mongoose17.default.model("Event", schema12);
|
|
8613
8646
|
|
|
8614
8647
|
// src/mongoose/Partner.ts
|
|
@@ -9131,7 +9164,134 @@ function convertObjectIdsToStrings(obj) {
|
|
|
9131
9164
|
return obj;
|
|
9132
9165
|
}
|
|
9133
9166
|
|
|
9134
|
-
// src/service/event.ts
|
|
9167
|
+
// src/service/event/updateAllEventDateTimeStatuses.ts
|
|
9168
|
+
var import_dayjs2 = __toESM(require("dayjs"));
|
|
9169
|
+
var import_customParseFormat2 = __toESM(require("dayjs/plugin/customParseFormat"));
|
|
9170
|
+
var import_isoWeek = __toESM(require("dayjs/plugin/isoWeek"));
|
|
9171
|
+
import_dayjs2.default.extend(import_customParseFormat2.default);
|
|
9172
|
+
import_dayjs2.default.extend(import_isoWeek.default);
|
|
9173
|
+
function getFutureEventStatus(startDateTime, now) {
|
|
9174
|
+
const hoursUntilStart = startDateTime.diff(now, "hour", true);
|
|
9175
|
+
if (hoursUntilStart > 0 && hoursUntilStart <= 4) {
|
|
9176
|
+
return EnumEventDateStatus.STARTING_SOON;
|
|
9177
|
+
}
|
|
9178
|
+
if (startDateTime.isSame(now, "day")) {
|
|
9179
|
+
return EnumEventDateStatus.TODAY;
|
|
9180
|
+
}
|
|
9181
|
+
if (startDateTime.isSame(now.add(1, "day"), "day")) {
|
|
9182
|
+
return EnumEventDateStatus.TOMORROW;
|
|
9183
|
+
}
|
|
9184
|
+
if (startDateTime.isSame(now, "isoWeek")) {
|
|
9185
|
+
return EnumEventDateStatus.THIS_WEEK;
|
|
9186
|
+
}
|
|
9187
|
+
if (startDateTime.isSame(now.add(1, "week"), "isoWeek")) {
|
|
9188
|
+
return EnumEventDateStatus.NEXT_WEEK;
|
|
9189
|
+
}
|
|
9190
|
+
return EnumEventDateStatus.UPCOMING;
|
|
9191
|
+
}
|
|
9192
|
+
function updateSingleDateTimeStatus(dateTime, now = (0, import_dayjs2.default)()) {
|
|
9193
|
+
const dateTimeFormat = `${dateFormat} ${timeFormat}`;
|
|
9194
|
+
const startDateTime = (0, import_dayjs2.default)(
|
|
9195
|
+
`${dateTime.startDate} ${dateTime.startTime}`,
|
|
9196
|
+
dateTimeFormat,
|
|
9197
|
+
true
|
|
9198
|
+
);
|
|
9199
|
+
const endDateTime = (0, import_dayjs2.default)(
|
|
9200
|
+
`${dateTime.endDate} ${dateTime.endTime}`,
|
|
9201
|
+
dateTimeFormat,
|
|
9202
|
+
true
|
|
9203
|
+
);
|
|
9204
|
+
if (!startDateTime.isValid() || !endDateTime.isValid()) {
|
|
9205
|
+
return {
|
|
9206
|
+
...dateTime,
|
|
9207
|
+
dateStatus: EnumEventDateStatus.INVALID
|
|
9208
|
+
};
|
|
9209
|
+
}
|
|
9210
|
+
if (endDateTime.isBefore(startDateTime)) {
|
|
9211
|
+
return {
|
|
9212
|
+
...dateTime,
|
|
9213
|
+
dateStatus: EnumEventDateStatus.INVALID
|
|
9214
|
+
};
|
|
9215
|
+
}
|
|
9216
|
+
let dateStatus;
|
|
9217
|
+
if (endDateTime.isAfter(now)) {
|
|
9218
|
+
if (startDateTime.isAfter(now)) {
|
|
9219
|
+
dateStatus = getFutureEventStatus(startDateTime, now);
|
|
9220
|
+
} else {
|
|
9221
|
+
dateStatus = EnumEventDateStatus.STARTED;
|
|
9222
|
+
}
|
|
9223
|
+
} else {
|
|
9224
|
+
dateStatus = EnumEventDateStatus.ENDED;
|
|
9225
|
+
}
|
|
9226
|
+
return {
|
|
9227
|
+
...dateTime,
|
|
9228
|
+
dateStatus
|
|
9229
|
+
};
|
|
9230
|
+
}
|
|
9231
|
+
var dateTimeStatusFilter = {
|
|
9232
|
+
dateTime: { $ne: [], $type: "array" },
|
|
9233
|
+
deletedAt: null
|
|
9234
|
+
};
|
|
9235
|
+
var CURSOR_BATCH_SIZE = 50;
|
|
9236
|
+
function hasDateTimeStatusChanges(stored, updated) {
|
|
9237
|
+
if (stored.length !== updated.length) {
|
|
9238
|
+
return true;
|
|
9239
|
+
}
|
|
9240
|
+
return stored.some(
|
|
9241
|
+
(slot, index) => slot.dateStatus !== updated[index].dateStatus
|
|
9242
|
+
);
|
|
9243
|
+
}
|
|
9244
|
+
async function updateModelDateTimeStatuses(model, now) {
|
|
9245
|
+
let updated = 0;
|
|
9246
|
+
const cursor = model.find(dateTimeStatusFilter).select({ _id: 1, dateTime: 1 }).lean().cursor({ batchSize: CURSOR_BATCH_SIZE });
|
|
9247
|
+
let bulkOps = [];
|
|
9248
|
+
const flushBulkWrites = async () => {
|
|
9249
|
+
if (!bulkOps.length) {
|
|
9250
|
+
return;
|
|
9251
|
+
}
|
|
9252
|
+
await model.bulkWrite(bulkOps);
|
|
9253
|
+
updated += bulkOps.length;
|
|
9254
|
+
bulkOps = [];
|
|
9255
|
+
};
|
|
9256
|
+
try {
|
|
9257
|
+
for await (const doc of cursor) {
|
|
9258
|
+
const dateTime = doc.dateTime.map(
|
|
9259
|
+
(slot) => updateSingleDateTimeStatus(slot, now)
|
|
9260
|
+
);
|
|
9261
|
+
if (!hasDateTimeStatusChanges(doc.dateTime, dateTime)) {
|
|
9262
|
+
continue;
|
|
9263
|
+
}
|
|
9264
|
+
bulkOps.push({
|
|
9265
|
+
updateOne: {
|
|
9266
|
+
filter: { _id: doc._id },
|
|
9267
|
+
update: { $set: { dateTime } }
|
|
9268
|
+
}
|
|
9269
|
+
});
|
|
9270
|
+
if (bulkOps.length >= CURSOR_BATCH_SIZE) {
|
|
9271
|
+
await flushBulkWrites();
|
|
9272
|
+
}
|
|
9273
|
+
}
|
|
9274
|
+
await flushBulkWrites();
|
|
9275
|
+
} finally {
|
|
9276
|
+
await cursor.close().catch(() => void 0);
|
|
9277
|
+
}
|
|
9278
|
+
return updated;
|
|
9279
|
+
}
|
|
9280
|
+
async function updateAllEventDateTimeStatuses() {
|
|
9281
|
+
const now = (0, import_dayjs2.default)();
|
|
9282
|
+
const [eventCount, marketCount] = await Promise.all([
|
|
9283
|
+
updateModelDateTimeStatuses(EventModel, now),
|
|
9284
|
+
updateModelDateTimeStatuses(
|
|
9285
|
+
GoogleImportedMarketModel,
|
|
9286
|
+
now
|
|
9287
|
+
)
|
|
9288
|
+
]);
|
|
9289
|
+
console.log(
|
|
9290
|
+
`\u2705 Event dateTime statuses updated: events=${eventCount} changed, google imported markets=${marketCount} changed`
|
|
9291
|
+
);
|
|
9292
|
+
}
|
|
9293
|
+
|
|
9294
|
+
// src/service/event/findEventOrImportedMarketById.ts
|
|
9135
9295
|
async function findEventOrImportedMarketById(resourceId) {
|
|
9136
9296
|
if (!resourceId) {
|
|
9137
9297
|
return null;
|
|
@@ -9175,6 +9335,7 @@ function updateRelationDatesToUnavailable(relationDates, eventDateTime) {
|
|
|
9175
9335
|
saveNotificationsInDb,
|
|
9176
9336
|
sendPushNotifications,
|
|
9177
9337
|
updateAdStatuses,
|
|
9338
|
+
updateAllEventDateTimeStatuses,
|
|
9178
9339
|
updateRelationDatesToUnavailable,
|
|
9179
9340
|
updateVendorBasedOnUserLicense
|
|
9180
9341
|
});
|