jp.db.schemas 2.1.13 → 2.1.15

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 (96) hide show
  1. package/dist/models/activity-log-user-login.interface copy.d.ts +11 -0
  2. package/dist/models/activity-log-user-login.interface copy.d.ts.map +1 -0
  3. package/dist/models/activity-log-user-login.interface copy.js +3 -0
  4. package/dist/models/activity-log-user-login.interface copy.js.map +1 -0
  5. package/dist/repositories/premium.repository.d.ts +1 -1
  6. package/dist/repositories/premium.repository.d.ts.map +1 -1
  7. package/dist/repositories/premium.repository.js +2 -5
  8. package/dist/repositories/premium.repository.js.map +1 -1
  9. package/dist/repositories/purchase.repository.d.ts +1 -1
  10. package/dist/repositories/purchase.repository.js +1 -1
  11. package/dist/repositories/rule.repository.d.ts +1 -1
  12. package/dist/repositories/rule.repository.d.ts.map +1 -1
  13. package/dist/repositories/rule.repository.js +2 -5
  14. package/dist/repositories/rule.repository.js.map +1 -1
  15. package/dist/repositories/welcome.repository.d.ts +1 -1
  16. package/dist/repositories/welcome.repository.d.ts.map +1 -1
  17. package/dist/repositories/welcome.repository.js +2 -5
  18. package/dist/repositories/welcome.repository.js.map +1 -1
  19. package/package.json +31 -31
  20. package/readme.md +3 -3
  21. package/src/index.ts +251 -251
  22. package/src/models/activity-log-user-login.interface copy.ts +10 -0
  23. package/src/models/activity-log-user-login.interface.ts +9 -9
  24. package/src/models/activity-log.enum.ts +7 -7
  25. package/src/models/currency.enum.ts +4 -4
  26. package/src/models/rating-add-bulk-item.interface.ts +6 -6
  27. package/src/models/rating-monthly-result.interface.ts +10 -10
  28. package/src/models/tournament-participant.interface.ts +5 -5
  29. package/src/models/tournament-status.enum.ts +6 -6
  30. package/src/models/tournament-template.enum.ts +3 -3
  31. package/src/models/tournament-winner.interface.ts +7 -7
  32. package/src/repositories/achievement.repository.ts +18 -18
  33. package/src/repositories/activity-log.repository.ts +110 -110
  34. package/src/repositories/admin.repository.ts +23 -23
  35. package/src/repositories/article.repository.ts +33 -33
  36. package/src/repositories/balance-history.repository.ts +15 -15
  37. package/src/repositories/banners.repository.ts +54 -54
  38. package/src/repositories/complains.repository.ts +30 -30
  39. package/src/repositories/daily-bonus.repository.ts +25 -25
  40. package/src/repositories/friend.repository.ts +19 -19
  41. package/src/repositories/game-result.repository.ts +15 -15
  42. package/src/repositories/game-statistic.repository.ts +21 -21
  43. package/src/repositories/index.ts +57 -57
  44. package/src/repositories/menu.repository.ts +21 -21
  45. package/src/repositories/notification.repository.ts +54 -54
  46. package/src/repositories/premium.repository.ts +17 -19
  47. package/src/repositories/products.repository.ts +29 -29
  48. package/src/repositories/purchase.repository.ts +95 -95
  49. package/src/repositories/rating.repository.ts +83 -83
  50. package/src/repositories/rooms.repository.ts +17 -17
  51. package/src/repositories/rule.repository.ts +17 -19
  52. package/src/repositories/scheduled-tournaments.repository.ts +30 -30
  53. package/src/repositories/servers.repository.ts +18 -18
  54. package/src/repositories/setting.repository.ts +19 -19
  55. package/src/repositories/simple-rooms.repository.ts +17 -17
  56. package/src/repositories/tournament-many-tables-rooms.repository.ts +132 -132
  57. package/src/repositories/tournament-one-table-rooms.repository.ts +106 -106
  58. package/src/repositories/users.repository.ts +151 -151
  59. package/src/repositories/welcome.repository.ts +17 -19
  60. package/src/schemas/achievement.schema.ts +40 -40
  61. package/src/schemas/activity_log.schema.ts +37 -37
  62. package/src/schemas/admin.schema.ts +22 -22
  63. package/src/schemas/article.schema.ts +37 -37
  64. package/src/schemas/balance_history.schema.ts +37 -37
  65. package/src/schemas/banner.schema.ts +40 -40
  66. package/src/schemas/channel_message.schema.ts +31 -31
  67. package/src/schemas/complain.schema.ts +46 -46
  68. package/src/schemas/daily_bonus.schema.ts +56 -56
  69. package/src/schemas/feature.schema.ts +28 -28
  70. package/src/schemas/friend.schema.ts +50 -50
  71. package/src/schemas/game_result.schema.ts +68 -68
  72. package/src/schemas/game_statistic.schema.ts +40 -40
  73. package/src/schemas/menu.schema.ts +40 -40
  74. package/src/schemas/notification.schema.ts +61 -61
  75. package/src/schemas/premium.schema.ts +45 -45
  76. package/src/schemas/product.schema.ts +123 -123
  77. package/src/schemas/purchase.schema.ts +58 -58
  78. package/src/schemas/purchase_channel.schema.ts +31 -31
  79. package/src/schemas/rating.schema.ts +37 -37
  80. package/src/schemas/rooms.schema.ts +63 -63
  81. package/src/schemas/rule.schema.ts +45 -45
  82. package/src/schemas/scheduled_tournament.schema.ts +93 -93
  83. package/src/schemas/server.schema.ts +22 -22
  84. package/src/schemas/setting.schema.ts +55 -55
  85. package/src/schemas/simple_rooms.schema.ts +46 -46
  86. package/src/schemas/tournament_many_tables_rooms.schema.ts +84 -84
  87. package/src/schemas/tournament_one_table_rooms.schema.ts +81 -81
  88. package/src/schemas/user.fb.schema.ts +33 -33
  89. package/src/schemas/user.google.schema.ts +24 -24
  90. package/src/schemas/user.ok.schema.ts +52 -52
  91. package/src/schemas/user.schema.ts +182 -182
  92. package/src/schemas/user.tg.schema.ts +30 -30
  93. package/src/schemas/user.vk.schema.ts +70 -70
  94. package/src/schemas/user.ya.schema.ts +24 -24
  95. package/src/schemas/welcome.schema.ts +45 -45
  96. package/src/utils.ts +3 -3
@@ -1,151 +1,151 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
- import { BulkWriteResult } from 'mongodb';
5
-
6
- import { User, UserDocument } from '../';
7
-
8
- function getFullNameFilter(userName: string) {
9
- const regexpName = {
10
- '$regex': userName,
11
- '$options': 'i',
12
- };
13
-
14
- return userName ? { $or: [{ fullName: regexpName }, { fullNameAlias: regexpName }] } : {};
15
- }
16
-
17
- export type UserGameResultType = {
18
- userId: string;
19
- balanceAdding: number;
20
- experienceAdding: number;
21
- levelAdding: number;
22
- }
23
-
24
- @Injectable()
25
- export class UsersRepository {
26
- constructor(@InjectModel(User.name) private userModel: Model<UserDocument>) {
27
- }
28
-
29
- async findById(id: string): Promise<User | null> {
30
- return this.userModel
31
- .findById(id)
32
- .exec();
33
- }
34
-
35
- async findByVKId(vkId: number): Promise<User | null> {
36
- return this.userModel
37
- .findOne({ 'vkUser.id': vkId })
38
- .exec();
39
- }
40
-
41
- async findByOkId(okId: string): Promise<User | null> {
42
- return this.userModel
43
- .findOne({ 'okUser.uid': okId })
44
- .exec();
45
- }
46
-
47
- async findByYAId(yaId: string): Promise<User | null> {
48
- return this.userModel
49
- .findOne({ 'yaUser.userId': yaId })
50
- .exec();
51
- }
52
-
53
- async findByGoogleId(googleId: string): Promise<User | null> {
54
- return this.userModel
55
- .findOne({ 'googleUser.userId': googleId })
56
- .exec();
57
- }
58
-
59
- async findByFBId(fbId: string): Promise<User | null> {
60
- return this.userModel
61
- .findOne({ 'fbUser.playerId': fbId })
62
- .exec();
63
- }
64
-
65
- async findByTGId(tgId: number): Promise<User | null> {
66
- return this.userModel
67
- .findOne({ 'tgUser.id': tgId })
68
- .exec();
69
- }
70
-
71
- async findAndCount(userName: string, limit: number, skip: number): Promise<{
72
- items: Array<User>,
73
- total: number
74
- }> {
75
- const items = await this.userModel
76
- .find(getFullNameFilter(userName))
77
- .limit(limit)
78
- .skip(skip)
79
- .exec();
80
-
81
- const total = await this.userModel
82
- .find(getFullNameFilter(userName))
83
- .countDocuments()
84
- .exec();
85
-
86
- return { items, total };
87
- }
88
-
89
- async createUser(user: Partial<User>): Promise<User> {
90
- return this.userModel.create(user);
91
- }
92
-
93
- async updateUser(userId: string, user: Partial<User>, balanceAdding?: number): Promise<UserDocument | null> {
94
- delete user.balance;
95
-
96
- return this.userModel.findByIdAndUpdate(
97
- userId,
98
- {
99
- $set: {
100
- ...user,
101
- },
102
- $inc: { balance: balanceAdding ?? 0 }
103
- },
104
- { new: true },
105
- ).exec();
106
- }
107
-
108
- async saveGameResult(usersBalances: Array<UserGameResultType>): Promise<BulkWriteResult> {
109
- return this.userModel.bulkWrite(
110
- usersBalances.map((item) => ({
111
- updateOne: {
112
- filter: { _id: item.userId },
113
- update: {
114
- $inc: {
115
- balance: item.balanceAdding,
116
- experience: item.experienceAdding,
117
- level: item.levelAdding,
118
- }
119
- },
120
- },
121
- })),
122
- );
123
- }
124
-
125
- async addToBalance(userId: string, balanceAdding: number): Promise<UserDocument | null> {
126
- return this.userModel.findByIdAndUpdate(
127
- userId,
128
- {
129
- $inc: { balance: balanceAdding }
130
- },
131
- { new: true },
132
- ).exec();
133
- }
134
-
135
- async subtractFromBalance(userId: string, balanceSubtraction: number): Promise<UserDocument | null> {
136
- return this.userModel.findByIdAndUpdate(
137
- userId,
138
- {
139
- $inc: { balance: -balanceSubtraction }
140
- },
141
- { new: true },
142
- ).exec();
143
- }
144
-
145
- async addAchievement(userId: string, achievementCode: string): Promise<void> {
146
- await this.userModel.findByIdAndUpdate(
147
- userId,
148
- { $push: { achievements: achievementCode } })
149
- .exec();
150
- }
151
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+ import { BulkWriteResult } from 'mongodb';
5
+
6
+ import { User, UserDocument } from '../';
7
+
8
+ function getFullNameFilter(userName: string) {
9
+ const regexpName = {
10
+ '$regex': userName,
11
+ '$options': 'i',
12
+ };
13
+
14
+ return userName ? { $or: [{ fullName: regexpName }, { fullNameAlias: regexpName }] } : {};
15
+ }
16
+
17
+ export type UserGameResultType = {
18
+ userId: string;
19
+ balanceAdding: number;
20
+ experienceAdding: number;
21
+ levelAdding: number;
22
+ }
23
+
24
+ @Injectable()
25
+ export class UsersRepository {
26
+ constructor(@InjectModel(User.name) private userModel: Model<UserDocument>) {
27
+ }
28
+
29
+ async findById(id: string): Promise<User | null> {
30
+ return this.userModel
31
+ .findById(id)
32
+ .exec();
33
+ }
34
+
35
+ async findByVKId(vkId: number): Promise<User | null> {
36
+ return this.userModel
37
+ .findOne({ 'vkUser.id': vkId })
38
+ .exec();
39
+ }
40
+
41
+ async findByOkId(okId: string): Promise<User | null> {
42
+ return this.userModel
43
+ .findOne({ 'okUser.uid': okId })
44
+ .exec();
45
+ }
46
+
47
+ async findByYAId(yaId: string): Promise<User | null> {
48
+ return this.userModel
49
+ .findOne({ 'yaUser.userId': yaId })
50
+ .exec();
51
+ }
52
+
53
+ async findByGoogleId(googleId: string): Promise<User | null> {
54
+ return this.userModel
55
+ .findOne({ 'googleUser.userId': googleId })
56
+ .exec();
57
+ }
58
+
59
+ async findByFBId(fbId: string): Promise<User | null> {
60
+ return this.userModel
61
+ .findOne({ 'fbUser.playerId': fbId })
62
+ .exec();
63
+ }
64
+
65
+ async findByTGId(tgId: number): Promise<User | null> {
66
+ return this.userModel
67
+ .findOne({ 'tgUser.id': tgId })
68
+ .exec();
69
+ }
70
+
71
+ async findAndCount(userName: string, limit: number, skip: number): Promise<{
72
+ items: Array<User>,
73
+ total: number
74
+ }> {
75
+ const items = await this.userModel
76
+ .find(getFullNameFilter(userName))
77
+ .limit(limit)
78
+ .skip(skip)
79
+ .exec();
80
+
81
+ const total = await this.userModel
82
+ .find(getFullNameFilter(userName))
83
+ .countDocuments()
84
+ .exec();
85
+
86
+ return { items, total };
87
+ }
88
+
89
+ async createUser(user: Partial<User>): Promise<User> {
90
+ return this.userModel.create(user);
91
+ }
92
+
93
+ async updateUser(userId: string, user: Partial<User>, balanceAdding?: number): Promise<UserDocument | null> {
94
+ delete user.balance;
95
+
96
+ return this.userModel.findByIdAndUpdate(
97
+ userId,
98
+ {
99
+ $set: {
100
+ ...user,
101
+ },
102
+ $inc: { balance: balanceAdding ?? 0 }
103
+ },
104
+ { new: true },
105
+ ).exec();
106
+ }
107
+
108
+ async saveGameResult(usersBalances: Array<UserGameResultType>): Promise<BulkWriteResult> {
109
+ return this.userModel.bulkWrite(
110
+ usersBalances.map((item) => ({
111
+ updateOne: {
112
+ filter: { _id: item.userId },
113
+ update: {
114
+ $inc: {
115
+ balance: item.balanceAdding,
116
+ experience: item.experienceAdding,
117
+ level: item.levelAdding,
118
+ }
119
+ },
120
+ },
121
+ })),
122
+ );
123
+ }
124
+
125
+ async addToBalance(userId: string, balanceAdding: number): Promise<UserDocument | null> {
126
+ return this.userModel.findByIdAndUpdate(
127
+ userId,
128
+ {
129
+ $inc: { balance: balanceAdding }
130
+ },
131
+ { new: true },
132
+ ).exec();
133
+ }
134
+
135
+ async subtractFromBalance(userId: string, balanceSubtraction: number): Promise<UserDocument | null> {
136
+ return this.userModel.findByIdAndUpdate(
137
+ userId,
138
+ {
139
+ $inc: { balance: -balanceSubtraction }
140
+ },
141
+ { new: true },
142
+ ).exec();
143
+ }
144
+
145
+ async addAchievement(userId: string, achievementCode: string): Promise<void> {
146
+ await this.userModel.findByIdAndUpdate(
147
+ userId,
148
+ { $push: { achievements: achievementCode } })
149
+ .exec();
150
+ }
151
+ }
@@ -1,20 +1,18 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Welcome, WelcomeDocument } from '..';
6
- import { getChannelRegExpFilter } from '../utils';
7
-
8
- @Injectable()
9
- export class WelcomeRepository {
10
- constructor (@InjectModel(Welcome.name) private welcomeModel: Model<WelcomeDocument>) {
11
- }
12
-
13
- async findWelcome (channel: string, game: string): Promise<Array<Welcome> | null> {
14
- return this.welcomeModel
15
- .find({
16
- channels: getChannelRegExpFilter(channel),
17
- })
18
- .exec();
19
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Welcome, WelcomeDocument } from '..';
6
+ import { getChannelRegExpFilter } from '../utils';
7
+
8
+ @Injectable()
9
+ export class WelcomeRepository {
10
+ constructor (@InjectModel(Welcome.name) private welcomeModel: Model<WelcomeDocument>) {
11
+ }
12
+
13
+ async findWelcome (game: string, text:string): Promise<Welcome | null> {
14
+ return this.welcomeModel
15
+ .findOne({ game, text })
16
+ .exec();
17
+ }
20
18
  }
@@ -1,40 +1,40 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type AchievementDocument = HydratedDocument<Achievement>;
5
-
6
- @Schema()
7
- export class Achievement {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly achievementId: string;
14
-
15
- @Prop()
16
- title: string;
17
-
18
- @Prop()
19
- titleEn: string;
20
-
21
- @Prop()
22
- description: string;
23
-
24
- @Prop()
25
- descriptionEn: string;
26
-
27
- @Prop()
28
- code: string;
29
-
30
- @Prop()
31
- vkId: string;
32
-
33
- @Prop()
34
- prize: number;
35
-
36
- @Prop()
37
- game?: string;
38
- }
39
-
40
- export const AchievementSchema = SchemaFactory.createForClass(Achievement);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type AchievementDocument = HydratedDocument<Achievement>;
5
+
6
+ @Schema()
7
+ export class Achievement {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly achievementId: string;
14
+
15
+ @Prop()
16
+ title: string;
17
+
18
+ @Prop()
19
+ titleEn: string;
20
+
21
+ @Prop()
22
+ description: string;
23
+
24
+ @Prop()
25
+ descriptionEn: string;
26
+
27
+ @Prop()
28
+ code: string;
29
+
30
+ @Prop()
31
+ vkId: string;
32
+
33
+ @Prop()
34
+ prize: number;
35
+
36
+ @Prop()
37
+ game?: string;
38
+ }
39
+
40
+ export const AchievementSchema = SchemaFactory.createForClass(Achievement);
@@ -1,37 +1,37 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type ActivityLogDocument = HydratedDocument<ActivityLog>;
5
-
6
- @Schema({ collection: 'activity_log' })
7
- export class ActivityLog {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly activityLogId: string;
14
-
15
- @Prop()
16
- date: Date;
17
-
18
- @Prop()
19
- event: string;
20
-
21
- @Prop()
22
- userId: string;
23
-
24
- @Prop()
25
- userName: string;
26
-
27
- @Prop()
28
- amount?: number;
29
-
30
- @Prop()
31
- game: string;
32
-
33
- @Prop()
34
- channels: string;
35
- }
36
-
37
- export const ActivityLogSchema = SchemaFactory.createForClass(ActivityLog);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type ActivityLogDocument = HydratedDocument<ActivityLog>;
5
+
6
+ @Schema({ collection: 'activity_log' })
7
+ export class ActivityLog {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly activityLogId: string;
14
+
15
+ @Prop()
16
+ date: Date;
17
+
18
+ @Prop()
19
+ event: string;
20
+
21
+ @Prop()
22
+ userId: string;
23
+
24
+ @Prop()
25
+ userName: string;
26
+
27
+ @Prop()
28
+ amount?: number;
29
+
30
+ @Prop()
31
+ game: string;
32
+
33
+ @Prop()
34
+ channels: string;
35
+ }
36
+
37
+ export const ActivityLogSchema = SchemaFactory.createForClass(ActivityLog);
@@ -1,22 +1,22 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type AdminDocument = HydratedDocument<Admin>;
5
-
6
- @Schema()
7
- export class Admin {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly adminId: string;
14
-
15
- @Prop()
16
- login: string;
17
-
18
- @Prop()
19
- pass: string;
20
- }
21
-
22
- export const AdminSchema = SchemaFactory.createForClass(Admin);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type AdminDocument = HydratedDocument<Admin>;
5
+
6
+ @Schema()
7
+ export class Admin {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly adminId: string;
14
+
15
+ @Prop()
16
+ login: string;
17
+
18
+ @Prop()
19
+ pass: string;
20
+ }
21
+
22
+ export const AdminSchema = SchemaFactory.createForClass(Admin);
@@ -1,37 +1,37 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type ArticleDocument = HydratedDocument<Article>;
5
-
6
- @Schema()
7
- export class Article {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly articleId: string;
14
-
15
- @Prop()
16
- title: string;
17
-
18
- @Prop()
19
- titleEn: string;
20
-
21
- @Prop()
22
- text: string;
23
-
24
- @Prop()
25
- textEn: string;
26
-
27
- @Prop()
28
- cover: string;
29
-
30
- @Prop()
31
- createDate: Date;
32
-
33
- @Prop()
34
- keywords: string;
35
- }
36
-
37
- export const ArticleSchema = SchemaFactory.createForClass(Article);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type ArticleDocument = HydratedDocument<Article>;
5
+
6
+ @Schema()
7
+ export class Article {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly articleId: string;
14
+
15
+ @Prop()
16
+ title: string;
17
+
18
+ @Prop()
19
+ titleEn: string;
20
+
21
+ @Prop()
22
+ text: string;
23
+
24
+ @Prop()
25
+ textEn: string;
26
+
27
+ @Prop()
28
+ cover: string;
29
+
30
+ @Prop()
31
+ createDate: Date;
32
+
33
+ @Prop()
34
+ keywords: string;
35
+ }
36
+
37
+ export const ArticleSchema = SchemaFactory.createForClass(Article);