jp.db.schemas 2.2.10 → 2.2.12

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.
Files changed (113) hide show
  1. package/dist/index.d.ts +8 -8
  2. package/dist/index.js +9 -9
  3. package/dist/repositories/index.d.ts +3 -3
  4. package/dist/repositories/index.js +5 -5
  5. package/dist/repositories/many-tables-tournament-rooms.repository.d.ts +21 -0
  6. package/dist/repositories/many-tables-tournament-rooms.repository.d.ts.map +1 -0
  7. package/dist/repositories/{tournament-many-tables-rooms.repository.js → many-tables-tournament-rooms.repository.js} +8 -8
  8. package/dist/repositories/many-tables-tournament-rooms.repository.js.map +1 -0
  9. package/dist/repositories/one-table-tournament-rooms.repository.d.ts +18 -0
  10. package/dist/repositories/{tournament-one-table-rooms.repository.d.ts.map → one-table-tournament-rooms.repository.d.ts.map} +1 -1
  11. package/dist/repositories/{tournament-one-table-rooms.repository.js → one-table-tournament-rooms.repository.js} +8 -8
  12. package/dist/repositories/{tournament-one-table-rooms.repository.js.map → one-table-tournament-rooms.repository.js.map} +1 -1
  13. package/dist/schemas/{tournament_many_tables_rooms.schema.d.ts → many_tables_tournament_rooms.schema.d.ts} +52 -52
  14. package/dist/schemas/{tournament_many_tables_rooms.schema.d.ts.map → many_tables_tournament_rooms.schema.d.ts.map} +1 -1
  15. package/dist/schemas/{tournament_many_tables_rooms.schema.js → many_tables_tournament_rooms.schema.js} +29 -29
  16. package/dist/schemas/{tournament_many_tables_rooms.schema.js.map → many_tables_tournament_rooms.schema.js.map} +1 -1
  17. package/dist/schemas/{tournament_one_table_rooms.schema.d.ts → one_table_tournament_rooms.schema.d.ts} +50 -50
  18. package/dist/schemas/{tournament_one_table_rooms.schema.d.ts.map → one_table_tournament_rooms.schema.d.ts.map} +1 -1
  19. package/dist/schemas/{tournament_one_table_rooms.schema.js → one_table_tournament_rooms.schema.js} +28 -28
  20. package/dist/schemas/{tournament_one_table_rooms.schema.js.map → one_table_tournament_rooms.schema.js.map} +1 -1
  21. package/dist/schemas/premium.schema.js.map +1 -1
  22. package/dist/schemas/product.schema.js.map +1 -1
  23. package/dist/schemas/rule.schema.js.map +1 -1
  24. package/dist/schemas/setting.schema.js.map +1 -1
  25. package/dist/schemas/settings_option.schema.js.map +1 -1
  26. package/dist/schemas/welcome.schema.js.map +1 -1
  27. package/package.json +37 -37
  28. package/readme.md +3 -3
  29. package/src/index.ts +294 -294
  30. package/src/models/account-type.enum.ts +8 -8
  31. package/src/models/activity-log-user-login.interface.ts +10 -10
  32. package/src/models/activity-log.enum.ts +8 -8
  33. package/src/models/currency.enum.ts +6 -6
  34. package/src/models/rating-add-bulk-item.interface.ts +7 -7
  35. package/src/models/rating-monthly-result.interface.ts +11 -11
  36. package/src/models/tournament-participant.interface.ts +5 -5
  37. package/src/models/tournament-status.enum.ts +6 -6
  38. package/src/models/tournament-template.enum.ts +3 -3
  39. package/src/models/tournament-winner.interface.ts +7 -7
  40. package/src/models/users-balance-reason.enum.ts +8 -8
  41. package/src/repositories/achievement.repository.ts +17 -17
  42. package/src/repositories/activity-log.repository.ts +209 -209
  43. package/src/repositories/admin.repository.ts +20 -20
  44. package/src/repositories/article.repository.ts +24 -24
  45. package/src/repositories/banners.repository.ts +60 -60
  46. package/src/repositories/complains.repository.ts +31 -31
  47. package/src/repositories/daily-bonus.repository.ts +32 -32
  48. package/src/repositories/friend.repository.ts +24 -24
  49. package/src/repositories/game-result.repository.ts +19 -19
  50. package/src/repositories/game-statistic.repository.ts +25 -25
  51. package/src/repositories/index.ts +61 -61
  52. package/src/repositories/{tournament-many-tables-rooms.repository.ts → many-tables-tournament-rooms.repository.ts} +167 -171
  53. package/src/repositories/menu.repository.ts +19 -19
  54. package/src/repositories/notification.repository.ts +59 -59
  55. package/src/repositories/{tournament-one-table-rooms.repository.ts → one-table-tournament-rooms.repository.ts} +142 -142
  56. package/src/repositories/premium.repository.ts +16 -16
  57. package/src/repositories/products.repository.ts +30 -30
  58. package/src/repositories/purchase.repository.ts +111 -111
  59. package/src/repositories/rating.repository.ts +90 -90
  60. package/src/repositories/rooms.repository.ts +14 -14
  61. package/src/repositories/rule.repository.ts +14 -14
  62. package/src/repositories/scheduled-tournaments.repository.ts +35 -35
  63. package/src/repositories/servers.repository.ts +16 -16
  64. package/src/repositories/setting.repository.ts +24 -24
  65. package/src/repositories/settings-options.repository.ts +17 -17
  66. package/src/repositories/simple-rooms.repository.ts +16 -16
  67. package/src/repositories/users-achievements.repository.ts +46 -46
  68. package/src/repositories/users-balances.repository.ts +65 -65
  69. package/src/repositories/users.repository.ts +153 -153
  70. package/src/repositories/welcome.repository.ts +16 -16
  71. package/src/schemas/achievement.schema.ts +40 -40
  72. package/src/schemas/activity_log.schema.ts +37 -37
  73. package/src/schemas/admin.schema.ts +22 -22
  74. package/src/schemas/article.schema.ts +37 -37
  75. package/src/schemas/banner.schema.ts +40 -40
  76. package/src/schemas/channel_message.schema.ts +32 -32
  77. package/src/schemas/complain.schema.ts +46 -46
  78. package/src/schemas/daily_bonus.schema.ts +49 -49
  79. package/src/schemas/feature.schema.ts +28 -28
  80. package/src/schemas/friend.schema.ts +49 -49
  81. package/src/schemas/game_result.schema.ts +68 -68
  82. package/src/schemas/game_statistic.schema.ts +40 -40
  83. package/src/schemas/{tournament_many_tables_rooms.schema.ts → many_tables_tournament_rooms.schema.ts} +87 -87
  84. package/src/schemas/menu.schema.ts +37 -37
  85. package/src/schemas/notification.schema.ts +61 -61
  86. package/src/schemas/{tournament_one_table_rooms.schema.ts → one_table_tournament_rooms.schema.ts} +84 -84
  87. package/src/schemas/premium.schema.ts +37 -37
  88. package/src/schemas/product.schema.ts +111 -111
  89. package/src/schemas/purchase.schema.ts +61 -61
  90. package/src/schemas/purchase_channel.schema.ts +32 -32
  91. package/src/schemas/rating.schema.ts +37 -37
  92. package/src/schemas/rooms.schema.ts +63 -63
  93. package/src/schemas/rule.schema.ts +37 -37
  94. package/src/schemas/scheduled_tournament.schema.ts +94 -94
  95. package/src/schemas/server.schema.ts +22 -22
  96. package/src/schemas/setting.schema.ts +49 -49
  97. package/src/schemas/settings_option.schema.ts +41 -41
  98. package/src/schemas/simple_rooms.schema.ts +49 -49
  99. package/src/schemas/user.fb.schema.ts +33 -33
  100. package/src/schemas/user.google.schema.ts +24 -24
  101. package/src/schemas/user.ok.schema.ts +53 -53
  102. package/src/schemas/user.schema.ts +160 -160
  103. package/src/schemas/user.tg.schema.ts +30 -30
  104. package/src/schemas/user.vk.schema.ts +70 -70
  105. package/src/schemas/user.ya.schema.ts +24 -24
  106. package/src/schemas/users_achievement.schema.ts +41 -41
  107. package/src/schemas/users_balance.schema.ts +34 -34
  108. package/src/schemas/welcome.schema.ts +37 -37
  109. package/src/utils.ts +3 -3
  110. package/dist/repositories/tournament-many-tables-rooms.repository.d.ts +0 -21
  111. package/dist/repositories/tournament-many-tables-rooms.repository.d.ts.map +0 -1
  112. package/dist/repositories/tournament-many-tables-rooms.repository.js.map +0 -1
  113. package/dist/repositories/tournament-one-table-rooms.repository.d.ts +0 -18
@@ -1,171 +1,167 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
- import dayjs from 'dayjs';
5
-
6
- import {
7
- TournamentManyTablesRoom,
8
- TournamentManyTablesRoomDocument,
9
- TournamentOneTableRoomDocument,
10
- } from '../';
11
- import { TournamentStatusEnum } from '../models/tournament-status.enum';
12
- import { ITournamentWinner } from '../models/tournament-winner.interface';
13
- import { TournamentTemplateEnum } from '../models/tournament-template.enum';
14
- import { ITournamentParticipant } from '../models/tournament-participant.interface';
15
-
16
- @Injectable()
17
- export class TournamentManyTablesRoomsRepository {
18
- constructor(
19
- @InjectModel(TournamentManyTablesRoom.name)
20
- private tournamentModel: Model<TournamentManyTablesRoomDocument>,
21
- ) {}
22
-
23
- async findTournamentById(
24
- tournamentId: string,
25
- ): Promise<TournamentManyTablesRoomDocument | null> {
26
- return this.tournamentModel.findById(tournamentId).exec();
27
- }
28
-
29
- async findTemplateById(
30
- templateId: string,
31
- gameType: string,
32
- ): Promise<TournamentOneTableRoomDocument | null> {
33
- return this.tournamentModel.findOne({ templateId, gameType }).exec();
34
- }
35
-
36
- async findActualTournaments(
37
- gameType: string,
38
- ): Promise<Array<TournamentManyTablesRoomDocument>> {
39
- return this.tournamentModel
40
- .find({
41
- $and: [
42
- {
43
- isTemplate: false,
44
- gameType,
45
- },
46
- {
47
- $or: [
48
- { status: TournamentStatusEnum.STATE_WAITING_FOR_START },
49
- { finishDate: { $gte: dayjs().subtract(1, 'day').toDate() } },
50
- ],
51
- },
52
- ],
53
- })
54
- .exec();
55
- }
56
-
57
- async findWaitingTournamentByDate(
58
- gameType: string,
59
- startDate: Date,
60
- endDate: Date,
61
- ): Promise<TournamentOneTableRoomDocument | null> {
62
- return this.tournamentModel
63
- .findOne({
64
- gameType,
65
- status: TournamentStatusEnum.STATE_WAITING_FOR_START,
66
- isTemplate: false,
67
- scheduleDate: { $gte: startDate, $lt: endDate },
68
- })
69
- .exec();
70
- }
71
-
72
- async createTournament(
73
- tournament: Partial<TournamentManyTablesRoom>,
74
- ): Promise<TournamentManyTablesRoomDocument> {
75
- return this.tournamentModel.create(tournament);
76
- }
77
-
78
- async scheduleTournamentFromMasterTemplate(
79
- gameType: string,
80
- scheduleDate: Date,
81
- ): Promise<TournamentManyTablesRoomDocument> {
82
- const masterTemplate = await this.findTemplateById(
83
- TournamentTemplateEnum.MASTER,
84
- gameType,
85
- );
86
-
87
- return this.createTournament({
88
- title: masterTemplate.title,
89
- subtitle: masterTemplate.subtitle,
90
- description: masterTemplate.description,
91
- tableSize: masterTemplate.tableSize,
92
- bet: masterTemplate.bet,
93
- ticketPrice: masterTemplate.ticketPrice,
94
- roomType: masterTemplate.roomType,
95
- gameType: masterTemplate.gameType,
96
- rulesType: masterTemplate.rulesType,
97
- deckType: masterTemplate.deckType,
98
- maxParticipants: masterTemplate.maxParticipants,
99
- participants: masterTemplate.participants,
100
- status: masterTemplate.status,
101
- winners: masterTemplate.winners,
102
- createDate: new Date(),
103
- isTemplate: false,
104
- templateId: undefined,
105
- scheduleDate,
106
- });
107
- }
108
-
109
- async updateTournament(
110
- tournamentId: string,
111
- tournament: Partial<TournamentManyTablesRoom>,
112
- ): Promise<TournamentManyTablesRoomDocument> {
113
- return this.tournamentModel
114
- .findByIdAndUpdate(tournamentId, {
115
- $set: {
116
- ...tournament,
117
- },
118
- })
119
- .exec();
120
- }
121
-
122
- async removeTournament(tournamentId: string): Promise<void> {
123
- await this.tournamentModel.findByIdAndDelete(tournamentId);
124
- }
125
-
126
- async startTournament(tournamentId: string): Promise<void> {
127
- await this.tournamentModel
128
- .findByIdAndUpdate(tournamentId, {
129
- $set: {
130
- startDate: new Date(),
131
- status: TournamentStatusEnum.STATE_IN_PROGRESS,
132
- },
133
- })
134
- .exec();
135
- }
136
-
137
- async cancelTournament(tournamentId: string): Promise<void> {
138
- await this.tournamentModel
139
- .findByIdAndUpdate(tournamentId, {
140
- $set: {
141
- finishDate: new Date(),
142
- status: TournamentStatusEnum.STATE_CANCELLED,
143
- },
144
- })
145
- .exec();
146
- }
147
-
148
- async finishTournament(
149
- tournamentId: string,
150
- winners: Array<ITournamentWinner>,
151
- ): Promise<void> {
152
- await this.tournamentModel
153
- .findByIdAndUpdate(tournamentId, {
154
- $set: {
155
- finishDate: new Date(),
156
- status: TournamentStatusEnum.STATE_FINISHED,
157
- winners,
158
- },
159
- })
160
- .exec();
161
- }
162
-
163
- async addPlayerToParticipants(
164
- tournamentId: string,
165
- player: ITournamentParticipant,
166
- ): Promise<void> {
167
- await this.tournamentModel
168
- .findByIdAndUpdate(tournamentId, { $push: { participants: player } })
169
- .exec();
170
- }
171
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+ import dayjs from 'dayjs';
5
+
6
+ import { ManyTablesTournamentRoom, ManyTablesTournamentRoomDocument } from '..';
7
+ import { TournamentStatusEnum } from '../models/tournament-status.enum';
8
+ import { ITournamentWinner } from '../models/tournament-winner.interface';
9
+ import { TournamentTemplateEnum } from '../models/tournament-template.enum';
10
+ import { ITournamentParticipant } from '../models/tournament-participant.interface';
11
+
12
+ @Injectable()
13
+ export class ManyTablesTournamentRoomsRepository {
14
+ constructor(
15
+ @InjectModel(ManyTablesTournamentRoom.name)
16
+ private tournamentModel: Model<ManyTablesTournamentRoomDocument>,
17
+ ) {}
18
+
19
+ async findTournamentById(
20
+ tournamentId: string,
21
+ ): Promise<ManyTablesTournamentRoomDocument | null> {
22
+ return this.tournamentModel.findById(tournamentId).exec();
23
+ }
24
+
25
+ async findTemplateById(
26
+ templateId: string,
27
+ gameType: string,
28
+ ): Promise<ManyTablesTournamentRoomDocument | null> {
29
+ return this.tournamentModel.findOne({ templateId, gameType }).exec();
30
+ }
31
+
32
+ async findActualTournaments(
33
+ gameType: string,
34
+ ): Promise<Array<ManyTablesTournamentRoomDocument>> {
35
+ return this.tournamentModel
36
+ .find({
37
+ $and: [
38
+ {
39
+ isTemplate: false,
40
+ gameType,
41
+ },
42
+ {
43
+ $or: [
44
+ { status: TournamentStatusEnum.STATE_WAITING_FOR_START },
45
+ { finishDate: { $gte: dayjs().subtract(1, 'day').toDate() } },
46
+ ],
47
+ },
48
+ ],
49
+ })
50
+ .exec();
51
+ }
52
+
53
+ async findWaitingTournamentByDate(
54
+ gameType: string,
55
+ startDate: Date,
56
+ endDate: Date,
57
+ ): Promise<ManyTablesTournamentRoomDocument | null> {
58
+ return this.tournamentModel
59
+ .findOne({
60
+ gameType,
61
+ status: TournamentStatusEnum.STATE_WAITING_FOR_START,
62
+ isTemplate: false,
63
+ scheduleDate: { $gte: startDate, $lt: endDate },
64
+ })
65
+ .exec();
66
+ }
67
+
68
+ async createTournament(
69
+ tournament: Partial<ManyTablesTournamentRoom>,
70
+ ): Promise<ManyTablesTournamentRoomDocument> {
71
+ return this.tournamentModel.create(tournament);
72
+ }
73
+
74
+ async scheduleTournamentFromMasterTemplate(
75
+ gameType: string,
76
+ scheduleDate: Date,
77
+ ): Promise<ManyTablesTournamentRoomDocument> {
78
+ const masterTemplate = await this.findTemplateById(
79
+ TournamentTemplateEnum.MASTER,
80
+ gameType,
81
+ );
82
+
83
+ return this.createTournament({
84
+ title: masterTemplate.title,
85
+ subtitle: masterTemplate.subtitle,
86
+ description: masterTemplate.description,
87
+ tableSize: masterTemplate.tableSize,
88
+ bet: masterTemplate.bet,
89
+ ticketPrice: masterTemplate.ticketPrice,
90
+ roomType: masterTemplate.roomType,
91
+ gameType: masterTemplate.gameType,
92
+ rulesType: masterTemplate.rulesType,
93
+ deckType: masterTemplate.deckType,
94
+ maxParticipants: masterTemplate.maxParticipants,
95
+ participants: masterTemplate.participants,
96
+ status: masterTemplate.status,
97
+ winners: masterTemplate.winners,
98
+ createDate: new Date(),
99
+ isTemplate: false,
100
+ templateId: undefined,
101
+ scheduleDate,
102
+ });
103
+ }
104
+
105
+ async updateTournament(
106
+ tournamentId: string,
107
+ tournament: Partial<ManyTablesTournamentRoom>,
108
+ ): Promise<ManyTablesTournamentRoomDocument> {
109
+ return this.tournamentModel
110
+ .findByIdAndUpdate(tournamentId, {
111
+ $set: {
112
+ ...tournament,
113
+ },
114
+ })
115
+ .exec();
116
+ }
117
+
118
+ async removeTournament(tournamentId: string): Promise<void> {
119
+ await this.tournamentModel.findByIdAndDelete(tournamentId);
120
+ }
121
+
122
+ async startTournament(tournamentId: string): Promise<void> {
123
+ await this.tournamentModel
124
+ .findByIdAndUpdate(tournamentId, {
125
+ $set: {
126
+ startDate: new Date(),
127
+ status: TournamentStatusEnum.STATE_IN_PROGRESS,
128
+ },
129
+ })
130
+ .exec();
131
+ }
132
+
133
+ async cancelTournament(tournamentId: string): Promise<void> {
134
+ await this.tournamentModel
135
+ .findByIdAndUpdate(tournamentId, {
136
+ $set: {
137
+ finishDate: new Date(),
138
+ status: TournamentStatusEnum.STATE_CANCELLED,
139
+ },
140
+ })
141
+ .exec();
142
+ }
143
+
144
+ async finishTournament(
145
+ tournamentId: string,
146
+ winners: Array<ITournamentWinner>,
147
+ ): Promise<void> {
148
+ await this.tournamentModel
149
+ .findByIdAndUpdate(tournamentId, {
150
+ $set: {
151
+ finishDate: new Date(),
152
+ status: TournamentStatusEnum.STATE_FINISHED,
153
+ winners,
154
+ },
155
+ })
156
+ .exec();
157
+ }
158
+
159
+ async addPlayerToParticipants(
160
+ tournamentId: string,
161
+ player: ITournamentParticipant,
162
+ ): Promise<void> {
163
+ await this.tournamentModel
164
+ .findByIdAndUpdate(tournamentId, { $push: { participants: player } })
165
+ .exec();
166
+ }
167
+ }
@@ -1,19 +1,19 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Menu, MenuDocument } from '../';
6
- import { getChannelRegExpFilter } from '../utils';
7
-
8
- @Injectable()
9
- export class MenuRepository {
10
- constructor(@InjectModel(Menu.name) private menuModel: Model<MenuDocument>) {}
11
-
12
- async findMenus(channel: string, game: string): Promise<Array<Menu> | null> {
13
- return this.menuModel
14
- .find({
15
- channels: getChannelRegExpFilter(channel),
16
- })
17
- .exec();
18
- }
19
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Menu, MenuDocument } from '../';
6
+ import { getChannelRegExpFilter } from '../utils';
7
+
8
+ @Injectable()
9
+ export class MenuRepository {
10
+ constructor(@InjectModel(Menu.name) private menuModel: Model<MenuDocument>) {}
11
+
12
+ async findMenus(channel: string, game: string): Promise<Array<Menu> | null> {
13
+ return this.menuModel
14
+ .find({
15
+ channels: getChannelRegExpFilter(channel),
16
+ })
17
+ .exec();
18
+ }
19
+ }
@@ -1,59 +1,59 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Notification, NotificationDocument } from '../';
6
-
7
- @Injectable()
8
- export class NotificationRepository {
9
- constructor(
10
- @InjectModel(Notification.name)
11
- private notificationModel: Model<NotificationDocument>,
12
- ) {}
13
-
14
- async findById(id: string): Promise<Notification | null> {
15
- return this.notificationModel.findById(id).exec();
16
- }
17
-
18
- async findAndCount(
19
- limit: number,
20
- skip: number,
21
- ): Promise<{
22
- items: Array<Notification>;
23
- total: number;
24
- }> {
25
- const items = await this.notificationModel
26
- .find()
27
- .sort({ createDate: -1 })
28
- .limit(limit)
29
- .skip(skip)
30
- .exec();
31
-
32
- const total = await this.notificationModel.find().countDocuments().exec();
33
-
34
- return { items, total };
35
- }
36
-
37
- public async crateNotification(
38
- notification: Notification,
39
- ): Promise<Notification> {
40
- return this.notificationModel.create(notification);
41
- }
42
-
43
- async updateNotification(
44
- notificationId: string,
45
- notification: Partial<Notification>,
46
- ): Promise<void> {
47
- await this.notificationModel
48
- .findByIdAndUpdate(notificationId, {
49
- $set: {
50
- ...notification,
51
- },
52
- })
53
- .exec();
54
- }
55
-
56
- public async removeNotification(notificationId: string): Promise<void> {
57
- await this.notificationModel.findByIdAndDelete(notificationId);
58
- }
59
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Notification, NotificationDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class NotificationRepository {
9
+ constructor(
10
+ @InjectModel(Notification.name)
11
+ private notificationModel: Model<NotificationDocument>,
12
+ ) {}
13
+
14
+ async findById(id: string): Promise<Notification | null> {
15
+ return this.notificationModel.findById(id).exec();
16
+ }
17
+
18
+ async findAndCount(
19
+ limit: number,
20
+ skip: number,
21
+ ): Promise<{
22
+ items: Array<Notification>;
23
+ total: number;
24
+ }> {
25
+ const items = await this.notificationModel
26
+ .find()
27
+ .sort({ createDate: -1 })
28
+ .limit(limit)
29
+ .skip(skip)
30
+ .exec();
31
+
32
+ const total = await this.notificationModel.find().countDocuments().exec();
33
+
34
+ return { items, total };
35
+ }
36
+
37
+ public async crateNotification(
38
+ notification: Notification,
39
+ ): Promise<Notification> {
40
+ return this.notificationModel.create(notification);
41
+ }
42
+
43
+ async updateNotification(
44
+ notificationId: string,
45
+ notification: Partial<Notification>,
46
+ ): Promise<void> {
47
+ await this.notificationModel
48
+ .findByIdAndUpdate(notificationId, {
49
+ $set: {
50
+ ...notification,
51
+ },
52
+ })
53
+ .exec();
54
+ }
55
+
56
+ public async removeNotification(notificationId: string): Promise<void> {
57
+ await this.notificationModel.findByIdAndDelete(notificationId);
58
+ }
59
+ }