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,58 +1,58 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument, Types } from 'mongoose';
3
-
4
- export type PurchaseDocument = HydratedDocument<Purchase>;
5
-
6
- @Schema()
7
- export class Purchase {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly purchaseId: string;
14
-
15
- @Prop({ default: new Date() })
16
- date: Date;
17
-
18
- @Prop()
19
- userId: string;
20
-
21
- @Prop()
22
- userName: string;
23
-
24
- @Prop()
25
- productId: string;
26
-
27
- @Prop()
28
- productCode: string;
29
-
30
- @Prop()
31
- productName: string;
32
-
33
- @Prop()
34
- price: number;
35
-
36
- @Prop()
37
- currency: string;
38
-
39
- @Prop()
40
- vkOrderId?: number;
41
-
42
- @Prop()
43
- yaOrderId?: string;
44
-
45
- @Prop()
46
- ruStoreOrderId?: string;
47
-
48
- @Prop()
49
- token: string;
50
-
51
- @Prop()
52
- game: string;
53
-
54
- @Prop()
55
- removed: boolean;
56
- }
57
-
58
- export const PurchaseSchema = SchemaFactory.createForClass(Purchase);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument, Types } from 'mongoose';
3
+
4
+ export type PurchaseDocument = HydratedDocument<Purchase>;
5
+
6
+ @Schema()
7
+ export class Purchase {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly purchaseId: string;
14
+
15
+ @Prop({ default: new Date() })
16
+ date: Date;
17
+
18
+ @Prop()
19
+ userId: string;
20
+
21
+ @Prop()
22
+ userName: string;
23
+
24
+ @Prop()
25
+ productId: string;
26
+
27
+ @Prop()
28
+ productCode: string;
29
+
30
+ @Prop()
31
+ productName: string;
32
+
33
+ @Prop()
34
+ price: number;
35
+
36
+ @Prop()
37
+ currency: string;
38
+
39
+ @Prop()
40
+ vkOrderId?: number;
41
+
42
+ @Prop()
43
+ yaOrderId?: string;
44
+
45
+ @Prop()
46
+ ruStoreOrderId?: string;
47
+
48
+ @Prop()
49
+ token: string;
50
+
51
+ @Prop()
52
+ game: string;
53
+
54
+ @Prop()
55
+ removed: boolean;
56
+ }
57
+
58
+ export const PurchaseSchema = SchemaFactory.createForClass(Purchase);
@@ -1,31 +1,31 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type PurchaseChannelDocument = HydratedDocument<PurchaseChannel>;
5
-
6
- @Schema()
7
- export class PurchaseChannel {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly achievementId: string;
14
-
15
- @Prop()
16
- userId: string;
17
-
18
- @Prop()
19
- purchaseId: string;
20
-
21
- @Prop()
22
- productId: string;
23
-
24
- @Prop()
25
- channel: string;
26
-
27
- @Prop()
28
- game: string;
29
- }
30
-
31
- export const PurchaseChannelSchema = SchemaFactory.createForClass(PurchaseChannel);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type PurchaseChannelDocument = HydratedDocument<PurchaseChannel>;
5
+
6
+ @Schema()
7
+ export class PurchaseChannel {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly achievementId: string;
14
+
15
+ @Prop()
16
+ userId: string;
17
+
18
+ @Prop()
19
+ purchaseId: string;
20
+
21
+ @Prop()
22
+ productId: string;
23
+
24
+ @Prop()
25
+ channel: string;
26
+
27
+ @Prop()
28
+ game: string;
29
+ }
30
+
31
+ export const PurchaseChannelSchema = SchemaFactory.createForClass(PurchaseChannel);
@@ -1,37 +1,37 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type RatingDocument = HydratedDocument<Rating>;
5
-
6
- @Schema()
7
- export class Rating {
8
- @Virtual({
9
- get: function (this: Document) {
10
- return this._id.toString();
11
- },
12
- })
13
- readonly achievementId: string;
14
-
15
- @Prop()
16
- date: Date;
17
-
18
- @Prop()
19
- userId: string;
20
-
21
- @Prop()
22
- userName: string;
23
-
24
- @Prop()
25
- userAvatarUrl: string;
26
-
27
- @Prop()
28
- profit: number;
29
-
30
- @Prop()
31
- game: string;
32
-
33
- @Prop()
34
- channels: string;
35
- }
36
-
37
- export const RatingSchema = SchemaFactory.createForClass(Rating);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type RatingDocument = HydratedDocument<Rating>;
5
+
6
+ @Schema()
7
+ export class Rating {
8
+ @Virtual({
9
+ get: function (this: Document) {
10
+ return this._id.toString();
11
+ },
12
+ })
13
+ readonly achievementId: string;
14
+
15
+ @Prop()
16
+ date: Date;
17
+
18
+ @Prop()
19
+ userId: string;
20
+
21
+ @Prop()
22
+ userName: string;
23
+
24
+ @Prop()
25
+ userAvatarUrl: string;
26
+
27
+ @Prop()
28
+ profit: number;
29
+
30
+ @Prop()
31
+ game: string;
32
+
33
+ @Prop()
34
+ channels: string;
35
+ }
36
+
37
+ export const RatingSchema = SchemaFactory.createForClass(Rating);
@@ -1,63 +1,63 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument, SchemaTypes } from 'mongoose';
3
-
4
- export type RoomDocument = HydratedDocument<Room>;
5
-
6
- export interface Locale {
7
- ru: string;
8
- en: string;
9
- }
10
-
11
- @Schema()
12
- export class Room {
13
- @Virtual({
14
- get: function (this: Document) {
15
- return this._id.toString();
16
- },
17
- })
18
- readonly roomId: string;
19
-
20
- @Prop()
21
- type: string;
22
-
23
- @Prop()
24
- name: string;
25
-
26
- @Prop()
27
- nameEn: string;
28
-
29
- @Prop({ type: Object })
30
- title: Record<string, string>;
31
-
32
- @Prop({ type: Object })
33
- subtitle: Record<string, string>;
34
-
35
- @Prop()
36
- roomType: string;
37
-
38
- @Prop()
39
- maxPlayers: number;
40
-
41
- @Prop()
42
- bet: number;
43
-
44
- @Prop()
45
- halfBet: number;
46
-
47
- @Prop()
48
- limit: number;
49
-
50
- @Prop()
51
- balanceProductId: string;
52
-
53
- @Prop()
54
- gameType: string;
55
-
56
- @Prop()
57
- rulesType: string;
58
-
59
- @Prop()
60
- deckType?: string;
61
- }
62
-
63
- export const RoomSchema = SchemaFactory.createForClass(Room);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument, SchemaTypes } from 'mongoose';
3
+
4
+ export type RoomDocument = HydratedDocument<Room>;
5
+
6
+ export interface Locale {
7
+ ru: string;
8
+ en: string;
9
+ }
10
+
11
+ @Schema()
12
+ export class Room {
13
+ @Virtual({
14
+ get: function (this: Document) {
15
+ return this._id.toString();
16
+ },
17
+ })
18
+ readonly roomId: string;
19
+
20
+ @Prop()
21
+ type: string;
22
+
23
+ @Prop()
24
+ name: string;
25
+
26
+ @Prop()
27
+ nameEn: string;
28
+
29
+ @Prop({ type: Object })
30
+ title: Record<string, string>;
31
+
32
+ @Prop({ type: Object })
33
+ subtitle: Record<string, string>;
34
+
35
+ @Prop()
36
+ roomType: string;
37
+
38
+ @Prop()
39
+ maxPlayers: number;
40
+
41
+ @Prop()
42
+ bet: number;
43
+
44
+ @Prop()
45
+ halfBet: number;
46
+
47
+ @Prop()
48
+ limit: number;
49
+
50
+ @Prop()
51
+ balanceProductId: string;
52
+
53
+ @Prop()
54
+ gameType: string;
55
+
56
+ @Prop()
57
+ rulesType: string;
58
+
59
+ @Prop()
60
+ deckType?: string;
61
+ }
62
+
63
+ export const RoomSchema = SchemaFactory.createForClass(Room);
@@ -1,46 +1,46 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type RuleDocument = HydratedDocument<Rule>;
5
-
6
- @Schema({ collection: 'rules' })
7
- export class Rule {
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
- description: string;
20
-
21
- @Prop()
22
- descriptionEn: string;
23
-
24
- @Prop()
25
- text: string;
26
-
27
- @Prop()
28
- textEn: string;
29
-
30
- @Prop()
31
- icon: string;
32
-
33
-
34
- @Prop()
35
- url: string;
36
-
37
- @Prop()
38
- game: string;
39
-
40
- @Prop()
41
- channel: string;
42
-
43
-
44
- }
45
-
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type RuleDocument = HydratedDocument<Rule>;
5
+
6
+ @Schema({ collection: 'rules' })
7
+ export class Rule {
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
+ description: string;
20
+
21
+ @Prop()
22
+ descriptionEn: string;
23
+
24
+ @Prop()
25
+ text: string;
26
+
27
+ @Prop()
28
+ textEn: string;
29
+
30
+ @Prop()
31
+ icon: string;
32
+
33
+
34
+ @Prop()
35
+ url: string;
36
+
37
+ @Prop()
38
+ game: string;
39
+
40
+ @Prop()
41
+ channel: string;
42
+
43
+
44
+ }
45
+
46
46
  export const RuleSchema = SchemaFactory.createForClass(Rule);
@@ -1,93 +1,93 @@
1
- import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
- import { Document, HydratedDocument } from 'mongoose';
3
-
4
- export type ScheduledTournamentDocument = HydratedDocument<ScheduledTournament>;
5
-
6
- export interface IScheduledTournamentWinner {
7
- userId: string;
8
- userName: string;
9
- userAvatarUrl: string;
10
- prize: number;
11
- rank: number;
12
- }
13
-
14
- export interface IScheduledTournamentParticipant {
15
- userId: string;
16
- userName: string;
17
- userAvatarUrl: string;
18
- }
19
-
20
- @Schema({ collection: 'scheduled_tournaments' })
21
- export class ScheduledTournament {
22
- @Virtual({
23
- get: function (this: Document) {
24
- return this._id.toString();
25
- },
26
- })
27
- readonly tournamentId: string;
28
-
29
- @Prop()
30
- type: string;
31
-
32
- @Prop()
33
- name: string;
34
-
35
- @Prop()
36
- nameEn: string;
37
-
38
- @Prop()
39
- roomType: string;
40
-
41
- @Prop()
42
- tableSize: number;
43
-
44
- @Prop()
45
- bet: number;
46
-
47
- @Prop()
48
- halfBet: number;
49
-
50
- @Prop()
51
- ticketPrice: number;
52
-
53
- @Prop()
54
- ticketProductId: string;
55
-
56
- @Prop()
57
- date: Date;
58
-
59
- @Prop()
60
- prizeRu: string;
61
-
62
- @Prop()
63
- prizeEn: string;
64
-
65
- @Prop()
66
- participants: Array<IScheduledTournamentParticipant>;
67
-
68
- @Prop()
69
- winners: Array<IScheduledTournamentWinner>;
70
-
71
- @Prop()
72
- maxParticipants: number;
73
-
74
- @Prop()
75
- status: string;
76
-
77
- @Prop()
78
- category: string;
79
-
80
- @Prop()
81
- invitedPlayers: Array<string>;
82
-
83
- @Prop()
84
- ownerId?: string;
85
-
86
- @Prop()
87
- schedule: boolean;
88
-
89
- @Prop()
90
- game: string;
91
- }
92
-
93
- export const ScheduledTournamentSchema = SchemaFactory.createForClass(ScheduledTournament);
1
+ import { Prop, Schema, SchemaFactory, Virtual } from '@nestjs/mongoose';
2
+ import { Document, HydratedDocument } from 'mongoose';
3
+
4
+ export type ScheduledTournamentDocument = HydratedDocument<ScheduledTournament>;
5
+
6
+ export interface IScheduledTournamentWinner {
7
+ userId: string;
8
+ userName: string;
9
+ userAvatarUrl: string;
10
+ prize: number;
11
+ rank: number;
12
+ }
13
+
14
+ export interface IScheduledTournamentParticipant {
15
+ userId: string;
16
+ userName: string;
17
+ userAvatarUrl: string;
18
+ }
19
+
20
+ @Schema({ collection: 'scheduled_tournaments' })
21
+ export class ScheduledTournament {
22
+ @Virtual({
23
+ get: function (this: Document) {
24
+ return this._id.toString();
25
+ },
26
+ })
27
+ readonly tournamentId: string;
28
+
29
+ @Prop()
30
+ type: string;
31
+
32
+ @Prop()
33
+ name: string;
34
+
35
+ @Prop()
36
+ nameEn: string;
37
+
38
+ @Prop()
39
+ roomType: string;
40
+
41
+ @Prop()
42
+ tableSize: number;
43
+
44
+ @Prop()
45
+ bet: number;
46
+
47
+ @Prop()
48
+ halfBet: number;
49
+
50
+ @Prop()
51
+ ticketPrice: number;
52
+
53
+ @Prop()
54
+ ticketProductId: string;
55
+
56
+ @Prop()
57
+ date: Date;
58
+
59
+ @Prop()
60
+ prizeRu: string;
61
+
62
+ @Prop()
63
+ prizeEn: string;
64
+
65
+ @Prop()
66
+ participants: Array<IScheduledTournamentParticipant>;
67
+
68
+ @Prop()
69
+ winners: Array<IScheduledTournamentWinner>;
70
+
71
+ @Prop()
72
+ maxParticipants: number;
73
+
74
+ @Prop()
75
+ status: string;
76
+
77
+ @Prop()
78
+ category: string;
79
+
80
+ @Prop()
81
+ invitedPlayers: Array<string>;
82
+
83
+ @Prop()
84
+ ownerId?: string;
85
+
86
+ @Prop()
87
+ schedule: boolean;
88
+
89
+ @Prop()
90
+ game: string;
91
+ }
92
+
93
+ export const ScheduledTournamentSchema = SchemaFactory.createForClass(ScheduledTournament);