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,90 +1,90 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Rating, RatingDocument } from '..';
6
- import { getChannelRegExpFilter } from '../utils';
7
- import { IRatingMonthlyResult } from '../models/rating-monthly-result.interface';
8
-
9
- @Injectable()
10
- export class RatingRepository {
11
- constructor(
12
- @InjectModel(Rating.name) private ratingModel: Model<RatingDocument>,
13
- ) {}
14
-
15
- async findRating(
16
- channel: string,
17
- game: string,
18
- ): Promise<Array<Rating> | null> {
19
- return this.ratingModel
20
- .find({
21
- channels: getChannelRegExpFilter(channel),
22
- })
23
- .exec();
24
- }
25
-
26
- async addBulkPlayerRating(items: Array<Rating>): Promise<void> {
27
- await this.ratingModel.insertMany(items);
28
- }
29
-
30
- async getMonthlyRatingList(
31
- game: string,
32
- startDate: Date,
33
- endDate: Date,
34
- ): Promise<Array<IRatingMonthlyResult>> {
35
- return this.ratingModel.aggregate([
36
- {
37
- $match: {
38
- game,
39
- date: {
40
- $gte: startDate,
41
- $lte: endDate,
42
- },
43
- },
44
- },
45
- {
46
- $group: {
47
- _id: {
48
- userId: '$userId',
49
- date: {
50
- $dateToString: {
51
- format: '%Y-%m',
52
- date: '$date',
53
- },
54
- },
55
- },
56
- userId: { $first: '$userId' },
57
- userName: { $first: '$userName' },
58
- userAvatarUrl: { $first: '$userAvatarUrl' },
59
- game: { $first: '$game' },
60
- channels: { $first: '$channels' },
61
- count: { $sum: 1 },
62
- profit: { $sum: '$profit' },
63
- },
64
- },
65
- {
66
- $sort: { profit: -1 },
67
- },
68
- {
69
- $setWindowFields: {
70
- sortBy: { profit: -1 },
71
- output: { rank: { $rank: {} } },
72
- },
73
- },
74
- {
75
- $project: {
76
- _id: 0,
77
- id: { $concat: ['$_id.userId', '_', '$_id.date'] },
78
- userId: 1,
79
- userName: 1,
80
- userAvatarUrl: 1,
81
- game: 1,
82
- channels: 1,
83
- count: 1,
84
- date: '$_id.date',
85
- rank: 1,
86
- },
87
- },
88
- ]);
89
- }
90
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Rating, RatingDocument } from '..';
6
+ import { getChannelRegExpFilter } from '../utils';
7
+ import { IRatingMonthlyResult } from '../models/rating-monthly-result.interface';
8
+
9
+ @Injectable()
10
+ export class RatingRepository {
11
+ constructor(
12
+ @InjectModel(Rating.name) private ratingModel: Model<RatingDocument>,
13
+ ) {}
14
+
15
+ async findRating(
16
+ channel: string,
17
+ game: string,
18
+ ): Promise<Array<Rating> | null> {
19
+ return this.ratingModel
20
+ .find({
21
+ channels: getChannelRegExpFilter(channel),
22
+ })
23
+ .exec();
24
+ }
25
+
26
+ async addBulkPlayerRating(items: Array<Rating>): Promise<void> {
27
+ await this.ratingModel.insertMany(items);
28
+ }
29
+
30
+ async getMonthlyRatingList(
31
+ game: string,
32
+ startDate: Date,
33
+ endDate: Date,
34
+ ): Promise<Array<IRatingMonthlyResult>> {
35
+ return this.ratingModel.aggregate([
36
+ {
37
+ $match: {
38
+ game,
39
+ date: {
40
+ $gte: startDate,
41
+ $lte: endDate,
42
+ },
43
+ },
44
+ },
45
+ {
46
+ $group: {
47
+ _id: {
48
+ userId: '$userId',
49
+ date: {
50
+ $dateToString: {
51
+ format: '%Y-%m',
52
+ date: '$date',
53
+ },
54
+ },
55
+ },
56
+ userId: { $first: '$userId' },
57
+ userName: { $first: '$userName' },
58
+ userAvatarUrl: { $first: '$userAvatarUrl' },
59
+ game: { $first: '$game' },
60
+ channels: { $first: '$channels' },
61
+ count: { $sum: 1 },
62
+ profit: { $sum: '$profit' },
63
+ },
64
+ },
65
+ {
66
+ $sort: { profit: -1 },
67
+ },
68
+ {
69
+ $setWindowFields: {
70
+ sortBy: { profit: -1 },
71
+ output: { rank: { $rank: {} } },
72
+ },
73
+ },
74
+ {
75
+ $project: {
76
+ _id: 0,
77
+ id: { $concat: ['$_id.userId', '_', '$_id.date'] },
78
+ userId: 1,
79
+ userName: 1,
80
+ userAvatarUrl: 1,
81
+ game: 1,
82
+ channels: 1,
83
+ count: 1,
84
+ date: '$_id.date',
85
+ rank: 1,
86
+ },
87
+ },
88
+ ]);
89
+ }
90
+ }
@@ -1,14 +1,14 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Room, RoomDocument } from '../';
6
-
7
- @Injectable()
8
- export class RoomsRepository {
9
- constructor(@InjectModel(Room.name) private roomModel: Model<RoomDocument>) {}
10
-
11
- async findRooms(gameType: string): Promise<Array<RoomDocument>> {
12
- return this.roomModel.find({ gameType }).exec();
13
- }
14
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Room, RoomDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class RoomsRepository {
9
+ constructor(@InjectModel(Room.name) private roomModel: Model<RoomDocument>) {}
10
+
11
+ async findRooms(gameType: string): Promise<Array<RoomDocument>> {
12
+ return this.roomModel.find({ gameType }).exec();
13
+ }
14
+ }
@@ -1,14 +1,14 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Rule, RuleDocument } from '..';
6
-
7
- @Injectable()
8
- export class RuleRepository {
9
- constructor(@InjectModel(Rule.name) private ruleModel: Model<RuleDocument>) {}
10
-
11
- async findRule(gameType: string): Promise<Rule | null> {
12
- return this.ruleModel.findOne({ gameType }).exec();
13
- }
14
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Rule, RuleDocument } from '..';
6
+
7
+ @Injectable()
8
+ export class RuleRepository {
9
+ constructor(@InjectModel(Rule.name) private ruleModel: Model<RuleDocument>) {}
10
+
11
+ async findRule(gameType: string): Promise<Rule | null> {
12
+ return this.ruleModel.findOne({ gameType }).exec();
13
+ }
14
+ }
@@ -1,35 +1,35 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { ScheduledTournament, ScheduledTournamentDocument } from '../';
6
-
7
- @Injectable()
8
- export class ScheduledTournamentsRepository {
9
- constructor(
10
- @InjectModel(ScheduledTournament.name)
11
- private scheduledTournamentModel: Model<ScheduledTournamentDocument>,
12
- ) {}
13
-
14
- async findAndCount(
15
- limit: number,
16
- skip: number,
17
- ): Promise<{
18
- items: Array<ScheduledTournament>;
19
- total: number;
20
- }> {
21
- const items = await this.scheduledTournamentModel
22
- .find({ category: 'global' })
23
- .sort({ date: -1 })
24
- .limit(limit)
25
- .skip(skip)
26
- .exec();
27
-
28
- const total = await this.scheduledTournamentModel
29
- .find({ category: 'global' })
30
- .countDocuments()
31
- .exec();
32
-
33
- return { items, total };
34
- }
35
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { ScheduledTournament, ScheduledTournamentDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class ScheduledTournamentsRepository {
9
+ constructor(
10
+ @InjectModel(ScheduledTournament.name)
11
+ private scheduledTournamentModel: Model<ScheduledTournamentDocument>,
12
+ ) {}
13
+
14
+ async findAndCount(
15
+ limit: number,
16
+ skip: number,
17
+ ): Promise<{
18
+ items: Array<ScheduledTournament>;
19
+ total: number;
20
+ }> {
21
+ const items = await this.scheduledTournamentModel
22
+ .find({ category: 'global' })
23
+ .sort({ date: -1 })
24
+ .limit(limit)
25
+ .skip(skip)
26
+ .exec();
27
+
28
+ const total = await this.scheduledTournamentModel
29
+ .find({ category: 'global' })
30
+ .countDocuments()
31
+ .exec();
32
+
33
+ return { items, total };
34
+ }
35
+ }
@@ -1,16 +1,16 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Server, ServerDocument } from '../';
6
-
7
- @Injectable()
8
- export class ServersRepository {
9
- constructor(
10
- @InjectModel(Server.name) private serverModel: Model<ServerDocument>,
11
- ) {}
12
-
13
- async findServerByName(name: string): Promise<Server | null> {
14
- return this.serverModel.findOne({ name }).exec();
15
- }
16
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Server, ServerDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class ServersRepository {
9
+ constructor(
10
+ @InjectModel(Server.name) private serverModel: Model<ServerDocument>,
11
+ ) {}
12
+
13
+ async findServerByName(name: string): Promise<Server | null> {
14
+ return this.serverModel.findOne({ name }).exec();
15
+ }
16
+ }
@@ -1,24 +1,24 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Setting, SettingDocument } from '..';
6
- import { getChannelRegExpFilter } from '../utils';
7
-
8
- @Injectable()
9
- export class SettingRepository {
10
- constructor(
11
- @InjectModel(Setting.name) private settingModel: Model<SettingDocument>,
12
- ) {}
13
-
14
- async findSettings(
15
- channel: string,
16
- game: string,
17
- ): Promise<Array<Setting> | null> {
18
- return this.settingModel
19
- .find({
20
- channels: getChannelRegExpFilter(channel),
21
- })
22
- .exec();
23
- }
24
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Setting, SettingDocument } from '..';
6
+ import { getChannelRegExpFilter } from '../utils';
7
+
8
+ @Injectable()
9
+ export class SettingRepository {
10
+ constructor(
11
+ @InjectModel(Setting.name) private settingModel: Model<SettingDocument>,
12
+ ) {}
13
+
14
+ async findSettings(
15
+ channel: string,
16
+ game: string,
17
+ ): Promise<Array<Setting> | null> {
18
+ return this.settingModel
19
+ .find({
20
+ channels: getChannelRegExpFilter(channel),
21
+ })
22
+ .exec();
23
+ }
24
+ }
@@ -1,17 +1,17 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { SettingsOption, SettingsOptionDocument } from '..';
6
-
7
- @Injectable()
8
- export class SettingsOptionsRepository {
9
- constructor(
10
- @InjectModel(SettingsOption.name)
11
- private settingOptionsModel: Model<SettingsOptionDocument>,
12
- ) {}
13
-
14
- async findSettingsOptions(): Promise<Array<SettingsOption> | null> {
15
- return this.settingOptionsModel.find().exec();
16
- }
17
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { SettingsOption, SettingsOptionDocument } from '..';
6
+
7
+ @Injectable()
8
+ export class SettingsOptionsRepository {
9
+ constructor(
10
+ @InjectModel(SettingsOption.name)
11
+ private settingOptionsModel: Model<SettingsOptionDocument>,
12
+ ) {}
13
+
14
+ async findSettingsOptions(): Promise<Array<SettingsOption> | null> {
15
+ return this.settingOptionsModel.find().exec();
16
+ }
17
+ }
@@ -1,16 +1,16 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { SimpleRoom, SimpleRoomDocument } from '../';
6
-
7
- @Injectable()
8
- export class SimpleRoomsRepository {
9
- constructor(
10
- @InjectModel(SimpleRoom.name) private roomModel: Model<SimpleRoomDocument>,
11
- ) {}
12
-
13
- async findRooms(gameType: string): Promise<Array<SimpleRoomDocument>> {
14
- return this.roomModel.find({ gameType }).exec();
15
- }
16
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { SimpleRoom, SimpleRoomDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class SimpleRoomsRepository {
9
+ constructor(
10
+ @InjectModel(SimpleRoom.name) private roomModel: Model<SimpleRoomDocument>,
11
+ ) {}
12
+
13
+ async findRooms(gameType: string): Promise<Array<SimpleRoomDocument>> {
14
+ return this.roomModel.find({ gameType }).exec();
15
+ }
16
+ }
@@ -1,46 +1,46 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { UsersAchievement, UsersAchievementDocument } from '..';
6
-
7
- @Injectable()
8
- export class UsersAchievementsRepository {
9
- constructor(
10
- @InjectModel(UsersAchievement.name)
11
- private usersAchievementModel: Model<UsersAchievementDocument>,
12
- ) {}
13
-
14
- async findAchivementsByUserId(
15
- userId: string,
16
- ): Promise<Array<UsersAchievement>> {
17
- return this.usersAchievementModel.find({ userId }).exec();
18
- }
19
-
20
- async findAchivementsByUserIdAndAchievementCode(
21
- userId: string,
22
- achievementCode: string,
23
- ): Promise<Array<UsersAchievement>> {
24
- return this.usersAchievementModel.find({ userId, achievementCode }).exec();
25
- }
26
-
27
- async addUsersAchievement(
28
- userId: string,
29
- userName: string,
30
- achievementId: string,
31
- achievementTitle: string,
32
- achievementCode: string,
33
- achievementPrize: number,
34
- game: string,
35
- ): Promise<UsersAchievement> {
36
- return this.usersAchievementModel.create({
37
- userId,
38
- userName,
39
- achievementId,
40
- achievementTitle,
41
- achievementCode,
42
- achievementPrize,
43
- game,
44
- });
45
- }
46
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { UsersAchievement, UsersAchievementDocument } from '..';
6
+
7
+ @Injectable()
8
+ export class UsersAchievementsRepository {
9
+ constructor(
10
+ @InjectModel(UsersAchievement.name)
11
+ private usersAchievementModel: Model<UsersAchievementDocument>,
12
+ ) {}
13
+
14
+ async findAchivementsByUserId(
15
+ userId: string,
16
+ ): Promise<Array<UsersAchievement>> {
17
+ return this.usersAchievementModel.find({ userId }).exec();
18
+ }
19
+
20
+ async findAchivementsByUserIdAndAchievementCode(
21
+ userId: string,
22
+ achievementCode: string,
23
+ ): Promise<Array<UsersAchievement>> {
24
+ return this.usersAchievementModel.find({ userId, achievementCode }).exec();
25
+ }
26
+
27
+ async addUsersAchievement(
28
+ userId: string,
29
+ userName: string,
30
+ achievementId: string,
31
+ achievementTitle: string,
32
+ achievementCode: string,
33
+ achievementPrize: number,
34
+ game: string,
35
+ ): Promise<UsersAchievement> {
36
+ return this.usersAchievementModel.create({
37
+ userId,
38
+ userName,
39
+ achievementId,
40
+ achievementTitle,
41
+ achievementCode,
42
+ achievementPrize,
43
+ game,
44
+ });
45
+ }
46
+ }