jp.db.schemas 2.2.13 → 2.2.14

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 (88) hide show
  1. package/dist/repositories/products.repository.js +1 -1
  2. package/dist/repositories/products.repository.js.map +1 -1
  3. package/dist/repositories/settings-options.repository.js +1 -1
  4. package/dist/repositories/settings-options.repository.js.map +1 -1
  5. package/dist/schemas/user.schema.d.ts.map +1 -1
  6. package/dist/schemas/user.schema.js +1 -1
  7. package/dist/schemas/user.schema.js.map +1 -1
  8. package/package.json +37 -37
  9. package/readme.md +3 -3
  10. package/src/index.ts +277 -277
  11. package/src/models/account-type.enum.ts +8 -8
  12. package/src/models/activity-log-user-login.interface.ts +10 -10
  13. package/src/models/activity-log.enum.ts +8 -8
  14. package/src/models/currency.enum.ts +6 -6
  15. package/src/models/experiences-level-edge.enum.ts +4 -4
  16. package/src/models/experiences-level-rank.enum.ts +5 -5
  17. package/src/models/rating-add-bulk-item.interface.ts +7 -7
  18. package/src/models/rating-monthly-result.interface.ts +12 -12
  19. package/src/models/tournament-participant.interface.ts +5 -5
  20. package/src/models/tournament-status.enum.ts +6 -6
  21. package/src/models/tournament-template.enum.ts +3 -3
  22. package/src/models/tournament-winner.interface.ts +7 -7
  23. package/src/models/users-balance-reason.enum.ts +8 -8
  24. package/src/repositories/achievement.repository.ts +22 -22
  25. package/src/repositories/activity-log.repository.ts +209 -209
  26. package/src/repositories/admin.repository.ts +20 -20
  27. package/src/repositories/article.repository.ts +24 -24
  28. package/src/repositories/banners.repository.ts +67 -67
  29. package/src/repositories/complains.repository.ts +31 -31
  30. package/src/repositories/daily-bonus.repository.ts +33 -33
  31. package/src/repositories/friend.repository.ts +16 -16
  32. package/src/repositories/game-result.repository.ts +19 -19
  33. package/src/repositories/game-statistic.repository.ts +22 -22
  34. package/src/repositories/index.ts +57 -57
  35. package/src/repositories/many-tables-tournament-rooms.repository.ts +167 -167
  36. package/src/repositories/menu.repository.ts +20 -20
  37. package/src/repositories/notification.repository.ts +59 -59
  38. package/src/repositories/one-table-tournament-rooms.repository.ts +142 -142
  39. package/src/repositories/premium.repository.ts +22 -22
  40. package/src/repositories/products.repository.ts +32 -32
  41. package/src/repositories/purchase.repository.ts +111 -111
  42. package/src/repositories/rating.repository.ts +79 -79
  43. package/src/repositories/rule.repository.ts +20 -20
  44. package/src/repositories/servers.repository.ts +16 -16
  45. package/src/repositories/setting.repository.ts +25 -25
  46. package/src/repositories/settings-options.repository.ts +17 -17
  47. package/src/repositories/simple-rooms.repository.ts +16 -16
  48. package/src/repositories/users-achievements.repository.ts +46 -46
  49. package/src/repositories/users-balances.repository.ts +65 -65
  50. package/src/repositories/users.repository.ts +153 -153
  51. package/src/repositories/welcome.repository.ts +22 -22
  52. package/src/schemas/achievement.schema.ts +34 -34
  53. package/src/schemas/activity_log.schema.ts +37 -37
  54. package/src/schemas/admin.schema.ts +22 -22
  55. package/src/schemas/article.schema.ts +37 -37
  56. package/src/schemas/banner.schema.ts +37 -37
  57. package/src/schemas/channel_message.schema.ts +32 -32
  58. package/src/schemas/complain.schema.ts +46 -46
  59. package/src/schemas/daily_bonus.schema.ts +46 -46
  60. package/src/schemas/feature.schema.ts +28 -28
  61. package/src/schemas/friend.schema.ts +46 -46
  62. package/src/schemas/game_result.schema.ts +68 -68
  63. package/src/schemas/game_statistic.schema.ts +34 -34
  64. package/src/schemas/many_tables_tournament_rooms.schema.ts +87 -87
  65. package/src/schemas/menu.schema.ts +37 -37
  66. package/src/schemas/notification.schema.ts +61 -61
  67. package/src/schemas/one_table_tournament_rooms.schema.ts +84 -84
  68. package/src/schemas/premium.schema.ts +34 -34
  69. package/src/schemas/product.schema.ts +111 -111
  70. package/src/schemas/purchase.schema.ts +61 -61
  71. package/src/schemas/purchase_channel.schema.ts +32 -32
  72. package/src/schemas/rating.schema.ts +37 -37
  73. package/src/schemas/rule.schema.ts +34 -34
  74. package/src/schemas/server.schema.ts +22 -22
  75. package/src/schemas/setting.schema.ts +49 -49
  76. package/src/schemas/settings_option.schema.ts +41 -41
  77. package/src/schemas/simple_rooms.schema.ts +49 -49
  78. package/src/schemas/user.fb.schema.ts +33 -33
  79. package/src/schemas/user.google.schema.ts +24 -24
  80. package/src/schemas/user.ok.schema.ts +53 -53
  81. package/src/schemas/user.schema.ts +185 -187
  82. package/src/schemas/user.tg.schema.ts +30 -30
  83. package/src/schemas/user.vk.schema.ts +70 -70
  84. package/src/schemas/user.ya.schema.ts +24 -24
  85. package/src/schemas/users_achievement.schema.ts +41 -41
  86. package/src/schemas/users_balance.schema.ts +34 -34
  87. package/src/schemas/welcome.schema.ts +37 -37
  88. package/src/utils.ts +7 -7
@@ -1,167 +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 { 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
+ 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,20 +1,20 @@
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 { getGameRegExpFilter, getChannelRegExpFilter } from '../utils';
7
-
8
- @Injectable()
9
- export class MenuRepository {
10
- constructor(@InjectModel(Menu.name) private menuModel: Model<MenuDocument>) {}
11
-
12
- async findMenus(game: string, channel: string): Promise<Array<Menu> | null> {
13
- return this.menuModel
14
- .find({
15
- game: getGameRegExpFilter(game),
16
- channel: getChannelRegExpFilter(channel),
17
- })
18
- .exec();
19
- }
20
- }
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 { getGameRegExpFilter, getChannelRegExpFilter } from '../utils';
7
+
8
+ @Injectable()
9
+ export class MenuRepository {
10
+ constructor(@InjectModel(Menu.name) private menuModel: Model<MenuDocument>) {}
11
+
12
+ async findMenus(game: string, channel: string): Promise<Array<Menu> | null> {
13
+ return this.menuModel
14
+ .find({
15
+ game: getGameRegExpFilter(game),
16
+ channel: getChannelRegExpFilter(channel),
17
+ })
18
+ .exec();
19
+ }
20
+ }
@@ -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
+ }