jp.db.schemas 2.1.15 → 2.2.1

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 (156) hide show
  1. package/dist/index.d.ts +10 -6
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +14 -5
  4. package/dist/index.js.map +1 -1
  5. package/dist/models/account-type.enum.d.ts +9 -0
  6. package/dist/models/account-type.enum.d.ts.map +1 -0
  7. package/dist/models/account-type.enum.js +13 -0
  8. package/dist/models/account-type.enum.js.map +1 -0
  9. package/dist/models/users-balance-reason.enum.d.ts +9 -0
  10. package/dist/models/users-balance-reason.enum.d.ts.map +1 -0
  11. package/dist/models/users-balance-reason.enum.js +13 -0
  12. package/dist/models/users-balance-reason.enum.js.map +1 -0
  13. package/dist/repositories/index.d.ts +4 -2
  14. package/dist/repositories/index.d.ts.map +1 -1
  15. package/dist/repositories/index.js +7 -3
  16. package/dist/repositories/index.js.map +1 -1
  17. package/dist/repositories/setting.repository.d.ts +1 -1
  18. package/dist/repositories/setting.repository.d.ts.map +1 -1
  19. package/dist/repositories/setting.repository.js +1 -1
  20. package/dist/repositories/setting.repository.js.map +1 -1
  21. package/dist/repositories/settings-options.repository.d.ts +8 -0
  22. package/dist/repositories/settings-options.repository.d.ts.map +1 -0
  23. package/dist/repositories/{balance-history.repository.js → settings-options.repository.js} +14 -12
  24. package/dist/repositories/settings-options.repository.js.map +1 -0
  25. package/dist/repositories/users-achievements.repository.d.ts +10 -0
  26. package/dist/repositories/users-achievements.repository.d.ts.map +1 -0
  27. package/dist/repositories/users-achievements.repository.js +52 -0
  28. package/dist/repositories/users-achievements.repository.js.map +1 -0
  29. package/dist/repositories/users-balances.repository.d.ts +11 -0
  30. package/dist/repositories/users-balances.repository.d.ts.map +1 -0
  31. package/dist/repositories/users-balances.repository.js +44 -0
  32. package/dist/repositories/users-balances.repository.js.map +1 -0
  33. package/dist/repositories/welcome.repository.d.ts +1 -1
  34. package/dist/repositories/welcome.repository.d.ts.map +1 -1
  35. package/dist/repositories/welcome.repository.js +2 -2
  36. package/dist/repositories/welcome.repository.js.map +1 -1
  37. package/dist/schemas/product.schema.d.ts +20 -0
  38. package/dist/schemas/product.schema.d.ts.map +1 -1
  39. package/dist/schemas/product.schema.js +8 -0
  40. package/dist/schemas/product.schema.js.map +1 -1
  41. package/dist/schemas/setting.schema.d.ts +19 -19
  42. package/dist/schemas/setting.schema.d.ts.map +1 -1
  43. package/dist/schemas/setting.schema.js +16 -16
  44. package/dist/schemas/setting.schema.js.map +1 -1
  45. package/dist/schemas/settings_option.schema.d.ts +125 -0
  46. package/dist/schemas/settings_option.schema.d.ts.map +1 -0
  47. package/dist/schemas/settings_option.schema.js +65 -0
  48. package/dist/schemas/settings_option.schema.js.map +1 -0
  49. package/dist/schemas/user.schema.d.ts +40 -63
  50. package/dist/schemas/user.schema.d.ts.map +1 -1
  51. package/dist/schemas/user.schema.js +72 -21
  52. package/dist/schemas/user.schema.js.map +1 -1
  53. package/dist/schemas/users_achievement.schema.d.ts +115 -0
  54. package/dist/schemas/users_achievement.schema.d.ts.map +1 -0
  55. package/dist/schemas/users_achievement.schema.js +61 -0
  56. package/dist/schemas/users_achievement.schema.js.map +1 -0
  57. package/dist/schemas/users_balance.schema.d.ts +95 -0
  58. package/dist/schemas/users_balance.schema.d.ts.map +1 -0
  59. package/dist/schemas/{balance_history.schema.js → users_balance.schema.js} +18 -22
  60. package/dist/schemas/users_balance.schema.js.map +1 -0
  61. package/package.json +31 -31
  62. package/readme.md +3 -3
  63. package/src/index.ts +264 -251
  64. package/src/models/account-type.enum.ts +8 -0
  65. package/src/models/activity-log-user-login.interface.ts +9 -9
  66. package/src/models/activity-log.enum.ts +7 -7
  67. package/src/models/currency.enum.ts +4 -4
  68. package/src/models/rating-add-bulk-item.interface.ts +6 -6
  69. package/src/models/rating-monthly-result.interface.ts +10 -10
  70. package/src/models/tournament-participant.interface.ts +5 -5
  71. package/src/models/tournament-status.enum.ts +6 -6
  72. package/src/models/tournament-template.enum.ts +3 -3
  73. package/src/models/tournament-winner.interface.ts +7 -7
  74. package/src/models/users-balance-reason.enum.ts +8 -0
  75. package/src/repositories/achievement.repository.ts +18 -18
  76. package/src/repositories/activity-log.repository.ts +110 -110
  77. package/src/repositories/admin.repository.ts +23 -23
  78. package/src/repositories/article.repository.ts +33 -33
  79. package/src/repositories/banners.repository.ts +54 -54
  80. package/src/repositories/complains.repository.ts +30 -30
  81. package/src/repositories/daily-bonus.repository.ts +25 -25
  82. package/src/repositories/friend.repository.ts +19 -19
  83. package/src/repositories/game-result.repository.ts +15 -15
  84. package/src/repositories/game-statistic.repository.ts +21 -21
  85. package/src/repositories/index.ts +61 -57
  86. package/src/repositories/menu.repository.ts +21 -21
  87. package/src/repositories/notification.repository.ts +54 -54
  88. package/src/repositories/premium.repository.ts +17 -17
  89. package/src/repositories/products.repository.ts +29 -29
  90. package/src/repositories/purchase.repository.ts +95 -95
  91. package/src/repositories/rating.repository.ts +83 -83
  92. package/src/repositories/rooms.repository.ts +17 -17
  93. package/src/repositories/rule.repository.ts +17 -17
  94. package/src/repositories/scheduled-tournaments.repository.ts +30 -30
  95. package/src/repositories/servers.repository.ts +18 -18
  96. package/src/repositories/setting.repository.ts +19 -19
  97. package/src/repositories/settings-options.repository.ts +18 -0
  98. package/src/repositories/simple-rooms.repository.ts +17 -17
  99. package/src/repositories/tournament-many-tables-rooms.repository.ts +132 -132
  100. package/src/repositories/tournament-one-table-rooms.repository.ts +106 -106
  101. package/src/repositories/users-achievements.repository.ts +43 -0
  102. package/src/repositories/users-balances.repository.ts +28 -0
  103. package/src/repositories/users.repository.ts +151 -151
  104. package/src/repositories/welcome.repository.ts +17 -17
  105. package/src/schemas/achievement.schema.ts +40 -40
  106. package/src/schemas/activity_log.schema.ts +37 -37
  107. package/src/schemas/admin.schema.ts +22 -22
  108. package/src/schemas/article.schema.ts +37 -37
  109. package/src/schemas/banner.schema.ts +40 -40
  110. package/src/schemas/channel_message.schema.ts +31 -31
  111. package/src/schemas/complain.schema.ts +46 -46
  112. package/src/schemas/daily_bonus.schema.ts +56 -56
  113. package/src/schemas/feature.schema.ts +28 -28
  114. package/src/schemas/friend.schema.ts +50 -50
  115. package/src/schemas/game_result.schema.ts +68 -68
  116. package/src/schemas/game_statistic.schema.ts +40 -40
  117. package/src/schemas/menu.schema.ts +40 -40
  118. package/src/schemas/notification.schema.ts +61 -61
  119. package/src/schemas/premium.schema.ts +45 -45
  120. package/src/schemas/product.schema.ts +129 -123
  121. package/src/schemas/purchase.schema.ts +58 -58
  122. package/src/schemas/purchase_channel.schema.ts +31 -31
  123. package/src/schemas/rating.schema.ts +37 -37
  124. package/src/schemas/rooms.schema.ts +63 -63
  125. package/src/schemas/rule.schema.ts +45 -45
  126. package/src/schemas/scheduled_tournament.schema.ts +93 -93
  127. package/src/schemas/server.schema.ts +22 -22
  128. package/src/schemas/setting.schema.ts +55 -55
  129. package/src/schemas/settings_option.schema.ts +43 -0
  130. package/src/schemas/simple_rooms.schema.ts +46 -46
  131. package/src/schemas/tournament_many_tables_rooms.schema.ts +84 -84
  132. package/src/schemas/tournament_one_table_rooms.schema.ts +81 -81
  133. package/src/schemas/user.fb.schema.ts +33 -33
  134. package/src/schemas/user.google.schema.ts +24 -24
  135. package/src/schemas/user.ok.schema.ts +52 -52
  136. package/src/schemas/user.schema.ts +151 -182
  137. package/src/schemas/user.tg.schema.ts +30 -30
  138. package/src/schemas/user.vk.schema.ts +70 -70
  139. package/src/schemas/user.ya.schema.ts +24 -24
  140. package/src/schemas/users_achievement.schema.ts +40 -0
  141. package/src/schemas/users_balance.schema.ts +34 -0
  142. package/src/schemas/welcome.schema.ts +45 -45
  143. package/src/utils.ts +3 -3
  144. package/dist/models/activity-log-user-login.interface copy.d.ts +0 -11
  145. package/dist/models/activity-log-user-login.interface copy.d.ts.map +0 -1
  146. package/dist/models/activity-log-user-login.interface copy.js +0 -3
  147. package/dist/models/activity-log-user-login.interface copy.js.map +0 -1
  148. package/dist/repositories/balance-history.repository.d.ts +0 -8
  149. package/dist/repositories/balance-history.repository.d.ts.map +0 -1
  150. package/dist/repositories/balance-history.repository.js.map +0 -1
  151. package/dist/schemas/balance_history.schema.d.ts +0 -105
  152. package/dist/schemas/balance_history.schema.d.ts.map +0 -1
  153. package/dist/schemas/balance_history.schema.js.map +0 -1
  154. package/src/models/activity-log-user-login.interface copy.ts +0 -10
  155. package/src/repositories/balance-history.repository.ts +0 -15
  156. package/src/schemas/balance_history.schema.ts +0 -37
@@ -1,40 +1,40 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type BannerDocument = HydratedDocument<Banner>;
5
-
6
- @Schema()
7
- export class Banner {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly bannerId: string;
14
-
15
- @Prop()
16
- titleRu: string;
17
-
18
- @Prop()
19
- titleEn: string;
20
-
21
- @Prop()
22
- image: string;
23
-
24
- @Prop()
25
- link: string;
26
-
27
- @Prop()
28
- enabled: boolean;
29
-
30
- @Prop()
31
- isShowing: boolean;
32
-
33
- @Prop()
34
- createDate: Date;
35
-
36
- @Prop()
37
- game?: string;
38
- }
39
-
40
- export const BannerSchema = SchemaFactory.createForClass(Banner);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type BannerDocument = HydratedDocument<Banner>;
5
+
6
+ @Schema()
7
+ export class Banner {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly bannerId: string;
14
+
15
+ @Prop()
16
+ titleRu: string;
17
+
18
+ @Prop()
19
+ titleEn: string;
20
+
21
+ @Prop()
22
+ image: string;
23
+
24
+ @Prop()
25
+ link: string;
26
+
27
+ @Prop()
28
+ enabled: boolean;
29
+
30
+ @Prop()
31
+ isShowing: boolean;
32
+
33
+ @Prop()
34
+ createDate: Date;
35
+
36
+ @Prop()
37
+ game?: string;
38
+ }
39
+
40
+ export const BannerSchema = SchemaFactory.createForClass(Banner);
@@ -1,31 +1,31 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type ChannelMessageDocument = HydratedDocument<ChannelMessage>;
5
-
6
- @Schema()
7
- export class ChannelMessage {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly channelMessageId: string;
14
-
15
- @Prop()
16
- channelId: string;
17
-
18
- @Prop()
19
- date: Date;
20
-
21
- @Prop()
22
- text: string;
23
-
24
- @Prop()
25
- userId: string;
26
-
27
- @Prop()
28
- read: boolean;
29
- }
30
-
31
- export const ChannelMessageSchema = SchemaFactory.createForClass(ChannelMessage);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type ChannelMessageDocument = HydratedDocument<ChannelMessage>;
5
+
6
+ @Schema()
7
+ export class ChannelMessage {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly channelMessageId: string;
14
+
15
+ @Prop()
16
+ channelId: string;
17
+
18
+ @Prop()
19
+ date: Date;
20
+
21
+ @Prop()
22
+ text: string;
23
+
24
+ @Prop()
25
+ userId: string;
26
+
27
+ @Prop()
28
+ read: boolean;
29
+ }
30
+
31
+ export const ChannelMessageSchema = SchemaFactory.createForClass(ChannelMessage);
@@ -1,46 +1,46 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type ComplainDocument = HydratedDocument<Complain>;
5
-
6
- @Schema()
7
- export class Complain {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly complainId: string;
14
-
15
- @Prop()
16
- witnessUserId: string;
17
-
18
- @Prop()
19
- witnessName: string;
20
-
21
- @Prop()
22
- witnessAvatarUrl?: string;
23
-
24
- @Prop()
25
- witnessComment: string;
26
-
27
- @Prop()
28
- suspectUserId: string;
29
-
30
- @Prop()
31
- suspectName: string;
32
-
33
- @Prop()
34
- suspectAvatarUrl?: string;
35
-
36
- @Prop()
37
- suspectComment: string;
38
-
39
- @Prop()
40
- hideMessages: boolean;
41
-
42
- @Prop()
43
- createDate: Date;
44
- }
45
-
46
- export const ComplainSchema = SchemaFactory.createForClass(Complain);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type ComplainDocument = HydratedDocument<Complain>;
5
+
6
+ @Schema()
7
+ export class Complain {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly complainId: string;
14
+
15
+ @Prop()
16
+ witnessUserId: string;
17
+
18
+ @Prop()
19
+ witnessName: string;
20
+
21
+ @Prop()
22
+ witnessAvatarUrl?: string;
23
+
24
+ @Prop()
25
+ witnessComment: string;
26
+
27
+ @Prop()
28
+ suspectUserId: string;
29
+
30
+ @Prop()
31
+ suspectName: string;
32
+
33
+ @Prop()
34
+ suspectAvatarUrl?: string;
35
+
36
+ @Prop()
37
+ suspectComment: string;
38
+
39
+ @Prop()
40
+ hideMessages: boolean;
41
+
42
+ @Prop()
43
+ createDate: Date;
44
+ }
45
+
46
+ export const ComplainSchema = SchemaFactory.createForClass(Complain);
@@ -1,57 +1,57 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type DailyBonusDocument = HydratedDocument<DailyBonus>;
5
-
6
- @Schema({ collection: 'daily_bonuses' })
7
- export class DailyBonus {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly dailyBonusId: string;
14
-
15
- @Prop()
16
- id: string;
17
-
18
- @Prop()
19
- title: string;
20
-
21
- @Prop()
22
- titleEn: string;
23
-
24
- @Prop()
25
- subtitle: string;
26
-
27
- @Prop()
28
- subtitleEn: string;
29
-
30
- @Prop()
31
- icon: string;
32
-
33
- @Prop()
34
- active: boolean;
35
-
36
- @Prop()
37
- url: string;
38
-
39
- @Prop()
40
- position: number;
41
-
42
- @Prop()
43
- amount: number;
44
-
45
- @Prop()
46
- premiumAmount: number;
47
-
48
- @Prop()
49
- game: string;
50
-
51
- @Prop()
52
- channel: string;
53
-
54
-
55
- }
56
-
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type DailyBonusDocument = HydratedDocument<DailyBonus>;
5
+
6
+ @Schema({ collection: 'daily_bonuses' })
7
+ export class DailyBonus {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly dailyBonusId: string;
14
+
15
+ @Prop()
16
+ id: string;
17
+
18
+ @Prop()
19
+ title: string;
20
+
21
+ @Prop()
22
+ titleEn: string;
23
+
24
+ @Prop()
25
+ subtitle: string;
26
+
27
+ @Prop()
28
+ subtitleEn: string;
29
+
30
+ @Prop()
31
+ icon: string;
32
+
33
+ @Prop()
34
+ active: boolean;
35
+
36
+ @Prop()
37
+ url: string;
38
+
39
+ @Prop()
40
+ position: number;
41
+
42
+ @Prop()
43
+ amount: number;
44
+
45
+ @Prop()
46
+ premiumAmount: number;
47
+
48
+ @Prop()
49
+ game: string;
50
+
51
+ @Prop()
52
+ channel: string;
53
+
54
+
55
+ }
56
+
57
57
  export const DailyBonusSchema = SchemaFactory.createForClass(DailyBonus);
@@ -1,28 +1,28 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type FeatureDocument = HydratedDocument<Feature>;
5
-
6
- @Schema()
7
- export class Feature {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly featureId: string;
14
-
15
- @Prop()
16
- name: string;
17
-
18
- @Prop()
19
- enabled: boolean;
20
-
21
- @Prop()
22
- channels: string;
23
-
24
- @Prop()
25
- game?: string;
26
- }
27
-
28
- export const FeatureSchema = SchemaFactory.createForClass(Feature);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type FeatureDocument = HydratedDocument<Feature>;
5
+
6
+ @Schema()
7
+ export class Feature {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly featureId: string;
14
+
15
+ @Prop()
16
+ name: string;
17
+
18
+ @Prop()
19
+ enabled: boolean;
20
+
21
+ @Prop()
22
+ channels: string;
23
+
24
+ @Prop()
25
+ game?: string;
26
+ }
27
+
28
+ export const FeatureSchema = SchemaFactory.createForClass(Feature);
@@ -1,51 +1,51 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type FriendDocument = HydratedDocument<Friend>;
5
-
6
- @Schema({ collection: 'friends' })
7
- export class Friend {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly ruleId: string;
14
-
15
- @Prop()
16
- id: string;
17
-
18
- @Prop()
19
- icon: string;
20
-
21
- @Prop()
22
- title: string;
23
-
24
- @Prop()
25
- titleEn: string;
26
-
27
- @Prop()
28
- userId: string;
29
-
30
- @Prop()
31
- avatarUrl: string;
32
-
33
- @Prop()
34
- userName: string;
35
-
36
- @Prop()
37
- level: number;
38
-
39
- @Prop()
40
- url: string;
41
-
42
- @Prop()
43
- game: string;
44
-
45
- @Prop()
46
- channel: string;
47
-
48
-
49
- }
50
-
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type FriendDocument = HydratedDocument<Friend>;
5
+
6
+ @Schema({ collection: 'friends' })
7
+ export class Friend {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly ruleId: string;
14
+
15
+ @Prop()
16
+ id: string;
17
+
18
+ @Prop()
19
+ icon: string;
20
+
21
+ @Prop()
22
+ title: string;
23
+
24
+ @Prop()
25
+ titleEn: string;
26
+
27
+ @Prop()
28
+ userId: string;
29
+
30
+ @Prop()
31
+ avatarUrl: string;
32
+
33
+ @Prop()
34
+ userName: string;
35
+
36
+ @Prop()
37
+ level: number;
38
+
39
+ @Prop()
40
+ url: string;
41
+
42
+ @Prop()
43
+ game: string;
44
+
45
+ @Prop()
46
+ channel: string;
47
+
48
+
49
+ }
50
+
51
51
  export const FriendSchema = SchemaFactory.createForClass(Friend);
@@ -1,68 +1,68 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument, SchemaTypes, Types } from 'mongoose';
3
-
4
- export type GameResultDocument = HydratedDocument<GameResult>;
5
-
6
- export interface IGameResultFigure {
7
- figureId: number;
8
- type: string;
9
- name: string;
10
- }
11
-
12
- export interface IGameResultPlayer {
13
- userId: string;
14
- fullName: string;
15
- profit?: number;
16
- figures?: Array<IGameResultFigure>;
17
- }
18
-
19
- export interface IGameResultHistoryItem {
20
- userId: string;
21
- fullName: string;
22
- date: Date;
23
- actionType: string;
24
- state: string;
25
- turnNumber: number;
26
- moveAction?: string;
27
- moveData?: object;
28
- figures?: Array<IGameResultFigure>;
29
- }
30
-
31
- @Schema({ collection: 'game_results' })
32
- export class GameResult {
33
- @Virtual({
34
- get: function (this: Document) {
35
- return this._id.toString();
36
- },
37
- })
38
- readonly gameResultId: string;
39
-
40
- @Prop()
41
- date: Date;
42
-
43
- @Prop()
44
- gameType: string;
45
-
46
- @Prop()
47
- roomId: string;
48
-
49
- @Prop()
50
- gameId: string;
51
-
52
- @Prop()
53
- pot: number;
54
-
55
- @Prop()
56
- players: Array<IGameResultPlayer>;
57
-
58
- @Prop()
59
- winners: Array<IGameResultPlayer>;
60
-
61
- @Prop()
62
- history: Array<IGameResultHistoryItem>;
63
-
64
- @Prop({ type: SchemaTypes.Mixed })
65
- extraData?: any;
66
- }
67
-
68
- export const GameResultSchema = SchemaFactory.createForClass(GameResult);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument, SchemaTypes, Types } from 'mongoose';
3
+
4
+ export type GameResultDocument = HydratedDocument<GameResult>;
5
+
6
+ export interface IGameResultFigure {
7
+ figureId: number;
8
+ type: string;
9
+ name: string;
10
+ }
11
+
12
+ export interface IGameResultPlayer {
13
+ userId: string;
14
+ fullName: string;
15
+ profit?: number;
16
+ figures?: Array<IGameResultFigure>;
17
+ }
18
+
19
+ export interface IGameResultHistoryItem {
20
+ userId: string;
21
+ fullName: string;
22
+ date: Date;
23
+ actionType: string;
24
+ state: string;
25
+ turnNumber: number;
26
+ moveAction?: string;
27
+ moveData?: object;
28
+ figures?: Array<IGameResultFigure>;
29
+ }
30
+
31
+ @Schema({ collection: 'game_results' })
32
+ export class GameResult {
33
+ @Virtual({
34
+ get: function (this: Document) {
35
+ return this._id.toString();
36
+ },
37
+ })
38
+ readonly gameResultId: string;
39
+
40
+ @Prop()
41
+ date: Date;
42
+
43
+ @Prop()
44
+ gameType: string;
45
+
46
+ @Prop()
47
+ roomId: string;
48
+
49
+ @Prop()
50
+ gameId: string;
51
+
52
+ @Prop()
53
+ pot: number;
54
+
55
+ @Prop()
56
+ players: Array<IGameResultPlayer>;
57
+
58
+ @Prop()
59
+ winners: Array<IGameResultPlayer>;
60
+
61
+ @Prop()
62
+ history: Array<IGameResultHistoryItem>;
63
+
64
+ @Prop({ type: SchemaTypes.Mixed })
65
+ extraData?: any;
66
+ }
67
+
68
+ export const GameResultSchema = SchemaFactory.createForClass(GameResult);