diff --git a/package.json b/package.json index d234474a..01d3b220 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hawk.api", - "version": "1.2.11", + "version": "1.2.13", "main": "index.ts", "license": "BUSL-1.1", "scripts": { diff --git a/src/resolvers/project.js b/src/resolvers/project.js index 20745d78..9513e497 100644 --- a/src/resolvers/project.js +++ b/src/resolvers/project.js @@ -13,6 +13,9 @@ const ProjectModel = require('../models/project').default; const EVENTS_GROUP_HASH_INDEX_NAME = 'groupHashUnique'; const REPETITIONS_GROUP_HASH_INDEX_NAME = 'groupHash_hashed'; const REPETITIONS_USER_ID_INDEX_NAME = 'userId'; +const EVENTS_TIMESTAMP_INDEX_NAME = 'timestamp'; +const GROUPING_TIMESTAMP_INDEX_NAME = 'groupingTimestamp'; +const GROUPING_TIMESTAMP_AND_GROUP_HASH_INDEX_NAME = 'groupingTimestampAndGroupHash'; const MAX_SEARCH_QUERY_LENGTH = 50; /** @@ -100,7 +103,20 @@ module.exports = { const projectRepetitionsEventsCollection = await mongo.databases.events.createCollection('repetitions:' + project._id); - await mongo.databases.events.createCollection('dailyEvents:' + project._id); + const projectDailyEventsCollection = await mongo.databases.events.createCollection('dailyEvents:' + project._id); + + await projectDailyEventsCollection.createIndex({ + groupingTimestamp: 1, + }, { + name: GROUPING_TIMESTAMP_INDEX_NAME, + }); + + await projectDailyEventsCollection.createIndex({ + groupingTimestamp: 1, + groupHash: 1, + }, { + name: GROUPING_TIMESTAMP_AND_GROUP_HASH_INDEX_NAME, + }); await projectEventsCollection.createIndex({ groupHash: 1, @@ -124,6 +140,13 @@ module.exports = { sparse: true, }); + await projectEventsCollection.createIndex({ + timestamp: 1, + }, { + name: EVENTS_TIMESTAMP_INDEX_NAME, + sparse: true, + }); + telegram.sendMessage(`🤯 Project ${name} was created`); return project;