gambling-bot-shared 0.1.54 → 1.0.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 (166) hide show
  1. package/README.MD +4 -0
  2. package/dist/{mongoose/atmRequest.schema.d.ts → atm/atmRequest.mongoose.d.ts} +18 -28
  3. package/dist/atm/index.d.ts +3 -0
  4. package/dist/{types → atm}/index.js +5 -10
  5. package/dist/atm/schemas/atm.forms.d.ts +5 -0
  6. package/dist/atm/schemas/atm.forms.js +11 -0
  7. package/dist/blackjack/index.d.ts +3 -0
  8. package/dist/blackjack/index.js +21 -0
  9. package/dist/bonus/index.d.ts +7 -0
  10. package/dist/bonus/index.js +23 -0
  11. package/dist/bonus/schemas/bonus.forms.d.ts +16 -0
  12. package/dist/bonus/schemas/bonus.forms.js +39 -0
  13. package/dist/{types → bonus/types}/bonus.d.ts +1 -1
  14. package/dist/{utils → bonus/utils}/calculateBonusReward.d.ts +1 -1
  15. package/dist/{utils → bonus/utils}/generateBonusPreview.d.ts +1 -1
  16. package/dist/{utils → bonus/utils}/normalizeBonusSettings.d.ts +1 -1
  17. package/dist/{mongoose/blackjackGame.schema.d.ts → casino/blackjackGame.mongoose.d.ts} +19 -29
  18. package/dist/{constants → casino/constants}/index.d.ts +4 -9
  19. package/dist/{constants → casino/constants}/index.js +4 -9
  20. package/dist/{constants → casino/constants}/plinkoConfig.js +1 -1
  21. package/dist/casino/index.d.ts +12 -0
  22. package/dist/casino/index.js +30 -0
  23. package/dist/{schemas/forms.d.ts → casino/schemas/casino.forms.d.ts} +0 -103
  24. package/dist/casino/schemas/casino.forms.js +80 -0
  25. package/dist/casino/services/casinoBet.service.d.ts +41 -0
  26. package/dist/casino/services/casinoBet.service.js +146 -0
  27. package/dist/casino/types/casinoSettings.d.ts +2 -0
  28. package/dist/{utils → casino/utils}/calculateRTP.d.ts +1 -1
  29. package/dist/{utils → casino/utils}/calculateRTP.js +0 -2
  30. package/dist/{utils → casino/utils}/normalizeCasinoSettings.d.ts +1 -1
  31. package/dist/{utils → common}/formatters.d.ts +1 -1
  32. package/dist/{utils → common}/formatters.js +2 -2
  33. package/dist/common/index.d.ts +4 -0
  34. package/dist/{server.js → common/index.js} +4 -1
  35. package/dist/common/zod.d.ts +2 -0
  36. package/dist/common/zod.js +16 -0
  37. package/dist/{mongoose/guildConfiguration.schema.d.ts → guild/guildConfiguration.mongoose.d.ts} +16 -26
  38. package/dist/{mongoose/guildConfiguration.schema.js → guild/guildConfiguration.mongoose.js} +6 -5
  39. package/dist/guild/index.d.ts +8 -0
  40. package/dist/guild/index.js +26 -0
  41. package/dist/guild/schemas/guild.forms.d.ts +68 -0
  42. package/dist/guild/schemas/guild.forms.js +43 -0
  43. package/dist/{types → guild/types}/guildConfiguration.d.ts +2 -2
  44. package/dist/{utils → guild/utils}/normalizeGlobalSettings.d.ts +1 -1
  45. package/dist/guild/utils/normalizeGlobalSettings.js +46 -0
  46. package/dist/mongoose/index.d.ts +8 -8
  47. package/dist/mongoose/index.js +17 -22
  48. package/dist/predictions/index.d.ts +11 -0
  49. package/dist/predictions/index.js +29 -0
  50. package/dist/{mongoose/prediction.schema.d.ts → predictions/prediction.mongoose.d.ts} +14 -24
  51. package/dist/predictions/schemas/prediction.forms.d.ts +20 -0
  52. package/dist/predictions/schemas/prediction.forms.js +24 -0
  53. package/dist/predictions/services/normalizePredictionInput.d.ts +6 -0
  54. package/dist/predictions/services/normalizePredictionInput.js +53 -0
  55. package/dist/predictions/services/parsePredictionAutolock.d.ts +9 -0
  56. package/dist/predictions/services/parsePredictionAutolock.js +20 -0
  57. package/dist/predictions/services/parsePredictionChoices.d.ts +11 -0
  58. package/dist/predictions/services/parsePredictionChoices.js +26 -0
  59. package/dist/predictions/services/prediction.db.d.ts +55 -0
  60. package/dist/predictions/services/prediction.db.js +72 -0
  61. package/dist/predictions/services/predictionLifecycle.service.d.ts +25 -0
  62. package/dist/predictions/services/predictionLifecycle.service.js +133 -0
  63. package/dist/predictions/services/predictionSummary.d.ts +30 -0
  64. package/dist/predictions/services/predictionSummary.js +58 -0
  65. package/dist/predictions/services/types.d.ts +27 -0
  66. package/dist/raffle/index.d.ts +6 -0
  67. package/dist/raffle/index.js +24 -0
  68. package/dist/{mongoose/raffle.schema.d.ts → raffle/raffle.mongoose.d.ts} +19 -32
  69. package/dist/raffle/schemas/raffle.forms.d.ts +11 -0
  70. package/dist/raffle/schemas/raffle.forms.js +17 -0
  71. package/dist/raffle/services/raffle.db.d.ts +51 -0
  72. package/dist/raffle/services/raffle.db.js +153 -0
  73. package/dist/raffle/services/raffleLifecycle.service.d.ts +15 -0
  74. package/dist/raffle/services/raffleLifecycle.service.js +34 -0
  75. package/dist/raffle/services/types.d.ts +27 -0
  76. package/dist/{types → raffle/types}/raffle.d.ts +7 -5
  77. package/dist/transactions/constants/index.d.ts +2 -0
  78. package/dist/{schemas → transactions/constants}/index.js +2 -1
  79. package/dist/transactions/index.d.ts +4 -0
  80. package/dist/{index.js → transactions/index.js} +3 -2
  81. package/dist/{mongoose/transaction.schema.d.ts → transactions/transaction.mongoose.d.ts} +13 -23
  82. package/dist/{types → transactions/types}/transaction.d.ts +1 -1
  83. package/dist/transactions/types/transaction.js +2 -0
  84. package/dist/user/index.d.ts +2 -0
  85. package/dist/user/index.js +20 -0
  86. package/dist/user/types/user.js +2 -0
  87. package/dist/{mongoose/user.schema.d.ts → user/user.mongoose.d.ts} +12 -22
  88. package/dist/vip/index.d.ts +3 -0
  89. package/dist/vip/index.js +21 -0
  90. package/dist/vip/schemas/vip.forms.d.ts +10 -0
  91. package/dist/vip/schemas/vip.forms.js +16 -0
  92. package/dist/vip/types/vipRoom.js +2 -0
  93. package/dist/{mongoose/vipRoom.schema.d.ts → vip/vipRoom.mongoose.d.ts} +10 -20
  94. package/package.json +66 -26
  95. package/dist/index.d.ts +0 -3
  96. package/dist/schemas/forms.js +0 -173
  97. package/dist/schemas/index.d.ts +0 -1
  98. package/dist/server.d.ts +0 -1
  99. package/dist/types/index.d.ts +0 -11
  100. package/dist/utils/index.d.ts +0 -15
  101. package/dist/utils/index.js +0 -31
  102. package/dist/utils/normalizeGlobalSettings.js +0 -45
  103. /package/dist/{mongoose/atmRequest.schema.js → atm/atmRequest.mongoose.js} +0 -0
  104. /package/dist/{types → atm/types}/atmRequest.d.ts +0 -0
  105. /package/dist/{types → atm/types}/atmRequest.js +0 -0
  106. /package/dist/{constants → bonus/constants}/bonusLimits.d.ts +0 -0
  107. /package/dist/{constants → bonus/constants}/bonusLimits.js +0 -0
  108. /package/dist/{types → bonus/types}/bonus.js +0 -0
  109. /package/dist/{utils → bonus/utils}/bonusStreak.d.ts +0 -0
  110. /package/dist/{utils → bonus/utils}/bonusStreak.js +0 -0
  111. /package/dist/{utils → bonus/utils}/calculateBonusReward.js +0 -0
  112. /package/dist/{utils → bonus/utils}/generateBonusPreview.js +0 -0
  113. /package/dist/{utils → bonus/utils}/normalizeBonusSettings.js +0 -0
  114. /package/dist/{mongoose/blackjackGame.schema.js → casino/blackjackGame.mongoose.js} +0 -0
  115. /package/dist/{constants → casino/constants}/blackjack.d.ts +0 -0
  116. /package/dist/{constants → casino/constants}/blackjack.js +0 -0
  117. /package/dist/{constants → casino/constants}/casinoGames.d.ts +0 -0
  118. /package/dist/{constants → casino/constants}/casinoGames.js +0 -0
  119. /package/dist/{constants → casino/constants}/defaultConfig.d.ts +0 -0
  120. /package/dist/{constants → casino/constants}/defaultConfig.js +0 -0
  121. /package/dist/{constants → casino/constants}/lotteryConfig.d.ts +0 -0
  122. /package/dist/{constants → casino/constants}/lotteryConfig.js +0 -0
  123. /package/dist/{constants → casino/constants}/maxSimulations.d.ts +0 -0
  124. /package/dist/{constants → casino/constants}/maxSimulations.js +0 -0
  125. /package/dist/{constants → casino/constants}/plinkoConfig.d.ts +0 -0
  126. /package/dist/{constants → casino/constants}/rouletteConfig.d.ts +0 -0
  127. /package/dist/{constants → casino/constants}/rouletteConfig.js +0 -0
  128. /package/dist/{types → casino/types}/blackjackGame.d.ts +0 -0
  129. /package/dist/{types → casino/types}/blackjackGame.js +0 -0
  130. /package/dist/{types/guildConfiguration.js → casino/types/casinoSettings.js} +0 -0
  131. /package/dist/{utils → casino/utils}/normalizeCasinoSettings.js +0 -0
  132. /package/dist/{utils → casino/utils}/validateBetAmount.d.ts +0 -0
  133. /package/dist/{utils → casino/utils}/validateBetAmount.js +0 -0
  134. /package/dist/{utils → casino/utils}/winAnnouncements.d.ts +0 -0
  135. /package/dist/{utils → casino/utils}/winAnnouncements.js +0 -0
  136. /package/dist/{utils → common}/generateId.d.ts +0 -0
  137. /package/dist/{utils → common}/generateId.js +0 -0
  138. /package/dist/{utils → common}/parseTimeToSeconds.d.ts +0 -0
  139. /package/dist/{utils → common}/parseTimeToSeconds.js +0 -0
  140. /package/dist/{constants → guild/constants}/commonTimezones.d.ts +0 -0
  141. /package/dist/{constants → guild/constants}/commonTimezones.js +0 -0
  142. /package/dist/{constants → guild/constants}/defaultGlobalSettings.d.ts +0 -0
  143. /package/dist/{constants → guild/constants}/defaultGlobalSettings.js +0 -0
  144. /package/dist/{types/prediction.js → guild/types/guildConfiguration.js} +0 -0
  145. /package/dist/{utils → guild/utils}/globalSettings.d.ts +0 -0
  146. /package/dist/{utils → guild/utils}/globalSettings.js +0 -0
  147. /package/dist/{utils → guild/utils}/guildTimezone.d.ts +0 -0
  148. /package/dist/{utils → guild/utils}/guildTimezone.js +0 -0
  149. /package/dist/{mongoose/prediction.schema.js → predictions/prediction.mongoose.js} +0 -0
  150. /package/dist/{types/raffle.js → predictions/services/types.js} +0 -0
  151. /package/dist/{types → predictions/types}/prediction.d.ts +0 -0
  152. /package/dist/{types/transaction.js → predictions/types/prediction.js} +0 -0
  153. /package/dist/{utils → predictions/utils}/validatePredictionBet.d.ts +0 -0
  154. /package/dist/{utils → predictions/utils}/validatePredictionBet.js +0 -0
  155. /package/dist/{mongoose/raffle.schema.js → raffle/raffle.mongoose.js} +0 -0
  156. /package/dist/{types/user.js → raffle/services/types.js} +0 -0
  157. /package/dist/{types/vipRoom.js → raffle/types/raffle.js} +0 -0
  158. /package/dist/{constants → transactions/constants}/gameRecordFields.d.ts +0 -0
  159. /package/dist/{constants → transactions/constants}/gameRecordFields.js +0 -0
  160. /package/dist/{constants → transactions/constants}/transaction.d.ts +0 -0
  161. /package/dist/{constants → transactions/constants}/transaction.js +0 -0
  162. /package/dist/{mongoose/transaction.schema.js → transactions/transaction.mongoose.js} +0 -0
  163. /package/dist/{types → user/types}/user.d.ts +0 -0
  164. /package/dist/{mongoose/user.schema.js → user/user.mongoose.js} +0 -0
  165. /package/dist/{types → vip/types}/vipRoom.d.ts +0 -0
  166. /package/dist/{mongoose/vipRoom.schema.js → vip/vipRoom.mongoose.js} +0 -0
@@ -1,38 +1,8 @@
1
1
  import z from 'zod';
2
- export declare const atmChannelsFormSchema: z.ZodObject<{
3
- actions: z.ZodString;
4
- logs: z.ZodString;
5
- }, z.core.$strip>;
6
2
  export declare const casinoChannelsFormSchema: z.ZodObject<{
7
3
  casinoChannelIds: z.ZodArray<z.ZodString>;
8
4
  winAnnouncementsChannelId: z.ZodString;
9
5
  }, z.core.$strip>;
10
- export declare const predictionChannelsFormSchema: z.ZodObject<{
11
- actions: z.ZodString;
12
- logs: z.ZodString;
13
- }, z.core.$strip>;
14
- export declare const raffleChannelsFormSchema: z.ZodObject<{
15
- actions: z.ZodString;
16
- logs: z.ZodString;
17
- }, z.core.$strip>;
18
- export declare const channelsFormSchema: z.ZodObject<{
19
- atm: z.ZodObject<{
20
- actions: z.ZodString;
21
- logs: z.ZodString;
22
- }, z.core.$strip>;
23
- casino: z.ZodObject<{
24
- casinoChannelIds: z.ZodArray<z.ZodString>;
25
- winAnnouncementsChannelId: z.ZodString;
26
- }, z.core.$strip>;
27
- prediction: z.ZodObject<{
28
- actions: z.ZodString;
29
- logs: z.ZodString;
30
- }, z.core.$strip>;
31
- raffle: z.ZodObject<{
32
- actions: z.ZodString;
33
- logs: z.ZodString;
34
- }, z.core.$strip>;
35
- }, z.core.$strip>;
36
6
  export declare const casinoSettingsSchema: z.ZodObject<{
37
7
  dice: z.ZodObject<{
38
8
  winMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
@@ -108,76 +78,3 @@ export declare const casinoSettingsSchema: z.ZodObject<{
108
78
  coinflipMinMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
109
79
  }, z.core.$strip>;
110
80
  }, z.core.$strip>;
111
- export declare const vipSettingsFormSchema: z.ZodObject<{
112
- roleOwnerId: z.ZodString;
113
- roleMemberId: z.ZodString;
114
- pricePerDay: z.ZodNumber;
115
- pricePerCreate: z.ZodNumber;
116
- pricePerAdditionalMember: z.ZodNumber;
117
- maxMembers: z.ZodNumber;
118
- categoryId: z.ZodString;
119
- }, z.core.$strip>;
120
- export declare const managerRoleFormSchema: z.ZodObject<{
121
- managerRoleId: z.ZodString;
122
- }, z.core.$strip>;
123
- export declare const globalSettingsFormSchema: z.ZodObject<{
124
- disableRegistrations: z.ZodBoolean;
125
- disableDeposits: z.ZodBoolean;
126
- disableWithdrawals: z.ZodBoolean;
127
- disableCasinoGames: z.ZodBoolean;
128
- disableCasinoGamesForMods: z.ZodBoolean;
129
- disablePredictions: z.ZodBoolean;
130
- disablePredictionManagement: z.ZodBoolean;
131
- disableRaffles: z.ZodBoolean;
132
- disableRaffleManagement: z.ZodBoolean;
133
- disableDailyBonus: z.ZodBoolean;
134
- disableVip: z.ZodBoolean;
135
- maintenanceMode: z.ZodBoolean;
136
- timezone: z.ZodEnum<{
137
- UTC: "UTC";
138
- "Europe/London": "Europe/London";
139
- "Europe/Paris": "Europe/Paris";
140
- "Europe/Berlin": "Europe/Berlin";
141
- "Europe/Prague": "Europe/Prague";
142
- "Europe/Warsaw": "Europe/Warsaw";
143
- "Europe/Athens": "Europe/Athens";
144
- "Europe/Moscow": "Europe/Moscow";
145
- "America/New_York": "America/New_York";
146
- "America/Chicago": "America/Chicago";
147
- "America/Denver": "America/Denver";
148
- "America/Los_Angeles": "America/Los_Angeles";
149
- "America/Toronto": "America/Toronto";
150
- "America/Sao_Paulo": "America/Sao_Paulo";
151
- "America/Mexico_City": "America/Mexico_City";
152
- "Asia/Dubai": "Asia/Dubai";
153
- "Asia/Kolkata": "Asia/Kolkata";
154
- "Asia/Bangkok": "Asia/Bangkok";
155
- "Asia/Singapore": "Asia/Singapore";
156
- "Asia/Hong_Kong": "Asia/Hong_Kong";
157
- "Asia/Tokyo": "Asia/Tokyo";
158
- "Asia/Seoul": "Asia/Seoul";
159
- "Australia/Sydney": "Australia/Sydney";
160
- "Australia/Melbourne": "Australia/Melbourne";
161
- "Pacific/Auckland": "Pacific/Auckland";
162
- }>;
163
- currencySymbol: z.ZodString;
164
- currencyPlacement: z.ZodEnum<{
165
- prefix: "prefix";
166
- suffix: "suffix";
167
- }>;
168
- }, z.core.$strip>;
169
- export declare const bonusFormSchema: z.ZodObject<{
170
- rewardMode: z.ZodEnum<{
171
- linear: "linear";
172
- exponential: "exponential";
173
- }>;
174
- baseReward: z.ZodNumber;
175
- streakIncrement: z.ZodOptional<z.ZodNumber>;
176
- streakMultiplier: z.ZodPipe<z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>, z.ZodTransform<number | undefined, string | number | undefined>>, z.ZodOptional<z.ZodNumber>>;
177
- maxReward: z.ZodNumber;
178
- resetOnMax: z.ZodBoolean;
179
- milestoneBonus: z.ZodObject<{
180
- weekly: z.ZodNumber;
181
- monthly: z.ZodNumber;
182
- }, z.core.$strip>;
183
- }, z.core.$strip>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.casinoSettingsSchema = exports.casinoChannelsFormSchema = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ const zod_2 = require("../../common/zod");
9
+ const plinkoConfig_1 = require("../constants/plinkoConfig");
10
+ exports.casinoChannelsFormSchema = zod_1.default.object({
11
+ casinoChannelIds: zod_1.default.array(zod_1.default.string()),
12
+ winAnnouncementsChannelId: zod_1.default.string()
13
+ });
14
+ exports.casinoSettingsSchema = zod_1.default.object({
15
+ dice: zod_1.default.object({
16
+ winMultiplier: zod_2.num,
17
+ minBet: zod_2.num,
18
+ maxBet: zod_2.num
19
+ }),
20
+ coinflip: zod_1.default.object({
21
+ winMultiplier: zod_2.num,
22
+ minBet: zod_2.num,
23
+ maxBet: zod_2.num
24
+ }),
25
+ slots: zod_1.default.object({
26
+ winMultipliers: zod_1.default.record(zod_1.default.string(), zod_2.num),
27
+ symbolWeights: zod_1.default.record(zod_1.default.string(), zod_2.num),
28
+ minBet: zod_2.num,
29
+ maxBet: zod_2.num
30
+ }),
31
+ lottery: zod_1.default.object({
32
+ winMultipliers: zod_1.default.record(zod_1.default.string(), zod_2.num),
33
+ minBet: zod_2.num,
34
+ maxBet: zod_2.num
35
+ }),
36
+ roulette: zod_1.default.object({
37
+ winMultipliers: zod_1.default.record(zod_1.default.string(), zod_2.num),
38
+ minBet: zod_2.num,
39
+ maxBet: zod_2.num
40
+ }),
41
+ rps: zod_1.default.object({
42
+ casinoCut: zod_2.num,
43
+ minBet: zod_2.num,
44
+ maxBet: zod_2.num
45
+ }),
46
+ goldenJackpot: zod_1.default.object({
47
+ winMultiplier: zod_2.num,
48
+ oneInChance: zod_2.num,
49
+ minBet: zod_2.num,
50
+ maxBet: zod_2.num
51
+ }),
52
+ blackjack: zod_1.default.object({
53
+ minBet: zod_2.num,
54
+ maxBet: zod_2.num
55
+ }),
56
+ prediction: zod_1.default.object({
57
+ minBet: zod_2.num,
58
+ maxBet: zod_2.num
59
+ }),
60
+ raffle: zod_1.default.object({
61
+ casinoCut: zod_2.num
62
+ }),
63
+ plinko: zod_1.default.object({
64
+ binMultipliers: zod_1.default
65
+ .record(zod_1.default.string(), zod_2.num)
66
+ .transform(plinkoConfig_1.normalizePlinkoBinMultipliers),
67
+ minBet: zod_2.num,
68
+ maxBet: zod_2.num
69
+ }),
70
+ winAnnouncements: zod_1.default.object({
71
+ plinkoMinMultiplier: zod_2.num,
72
+ goldenJackpotMinMultiplier: zod_2.num,
73
+ slotsMinMultiplier: zod_2.num,
74
+ lotteryMinMultiplier: zod_2.num,
75
+ rouletteMinMultiplier: zod_2.num,
76
+ blackjackMinMultiplier: zod_2.num,
77
+ diceMinMultiplier: zod_2.num,
78
+ coinflipMinMultiplier: zod_2.num
79
+ })
80
+ });
@@ -0,0 +1,41 @@
1
+ import type { Model } from 'mongoose';
2
+ import type { TTransaction } from '../../transactions/types/transaction';
3
+ import type { TUser } from '../../user/types/user';
4
+ import type { CasinoGameId } from '../constants/casinoGames';
5
+ type CasinoBetModels = {
6
+ userModel: Model<TUser>;
7
+ transactionModel: Model<TTransaction>;
8
+ };
9
+ export declare function createCasinoBetService({ userModel, transactionModel }: CasinoBetModels): {
10
+ refundLockedBet: ({ userId, guildId, amount, betId, game }: {
11
+ userId: string;
12
+ guildId: string;
13
+ amount: number;
14
+ betId: string;
15
+ game: CasinoGameId;
16
+ }) => Promise<void>;
17
+ settleCasinoWinnings: ({ userId, guildId, totalBet, winnings, betId, game }: {
18
+ userId: string;
19
+ guildId: string;
20
+ totalBet: number;
21
+ winnings: number;
22
+ betId: string;
23
+ game: CasinoGameId;
24
+ }) => Promise<number>;
25
+ refundRafflePurchase: ({ userId, guildId, amount, raffleId, game }: {
26
+ userId: string;
27
+ guildId: string;
28
+ amount: number;
29
+ raffleId: string;
30
+ game: CasinoGameId;
31
+ }) => Promise<void>;
32
+ payRaffleWinner: ({ userId, guildId, amount, raffleId, game }: {
33
+ userId: string;
34
+ guildId: string;
35
+ amount: number;
36
+ raffleId: string;
37
+ game: CasinoGameId;
38
+ }) => Promise<void>;
39
+ };
40
+ export type CasinoBetService = ReturnType<typeof createCasinoBetService>;
41
+ export {};
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCasinoBetService = createCasinoBetService;
4
+ function createCasinoBetService({ userModel, transactionModel }) {
5
+ async function refundLockedBet({ userId, guildId, amount, betId, game }) {
6
+ const session = await userModel.db.startSession();
7
+ try {
8
+ await session.withTransaction(async () => {
9
+ const user = await userModel
10
+ .findOne({ userId, guildId })
11
+ .session(session);
12
+ if (!user)
13
+ throw new Error('USER_NOT_FOUND');
14
+ if (user.lockedBalance < amount) {
15
+ return;
16
+ }
17
+ user.lockedBalance -= amount;
18
+ user.balance += amount;
19
+ await user.save({ session });
20
+ await transactionModel.create([
21
+ {
22
+ userId,
23
+ guildId,
24
+ amount,
25
+ type: 'refund',
26
+ source: 'casino',
27
+ betId,
28
+ meta: { game }
29
+ }
30
+ ], { session });
31
+ });
32
+ }
33
+ finally {
34
+ session.endSession();
35
+ }
36
+ }
37
+ async function settleCasinoWinnings({ userId, guildId, totalBet, winnings, betId, game }) {
38
+ const session = await userModel.db.startSession();
39
+ try {
40
+ let finalBalance = 0;
41
+ await session.withTransaction(async () => {
42
+ const user = await userModel
43
+ .findOne({ userId, guildId })
44
+ .session(session);
45
+ if (!user)
46
+ throw new Error('USER_NOT_FOUND');
47
+ if (user.lockedBalance < totalBet) {
48
+ finalBalance = user.balance + user.lockedBalance;
49
+ return;
50
+ }
51
+ user.lockedBalance -= totalBet;
52
+ if (winnings > 0) {
53
+ const winExists = await transactionModel
54
+ .exists({
55
+ betId,
56
+ type: 'win'
57
+ })
58
+ .session(session);
59
+ if (!winExists) {
60
+ user.balance += winnings;
61
+ await transactionModel.create([
62
+ {
63
+ userId,
64
+ guildId,
65
+ amount: winnings,
66
+ type: 'win',
67
+ source: 'casino',
68
+ betId,
69
+ meta: { game }
70
+ }
71
+ ], { session });
72
+ }
73
+ }
74
+ await user.save({ session });
75
+ finalBalance = user.balance + user.lockedBalance;
76
+ });
77
+ return finalBalance;
78
+ }
79
+ finally {
80
+ session.endSession();
81
+ }
82
+ }
83
+ // Raffle cancellation refunds go to normal balance even if bonus funds were used.
84
+ async function refundRafflePurchase({ userId, guildId, amount, raffleId, game }) {
85
+ const session = await userModel.db.startSession();
86
+ try {
87
+ await session.withTransaction(async () => {
88
+ const user = await userModel
89
+ .findOne({ userId, guildId })
90
+ .session(session);
91
+ if (!user)
92
+ throw new Error('USER_NOT_FOUND');
93
+ user.balance += amount;
94
+ await user.save({ session });
95
+ await transactionModel.create([
96
+ {
97
+ userId,
98
+ guildId,
99
+ amount,
100
+ type: 'refund',
101
+ source: 'casino',
102
+ betId: raffleId,
103
+ meta: { game }
104
+ }
105
+ ], { session });
106
+ });
107
+ }
108
+ finally {
109
+ session.endSession();
110
+ }
111
+ }
112
+ async function payRaffleWinner({ userId, guildId, amount, raffleId, game }) {
113
+ const session = await userModel.db.startSession();
114
+ try {
115
+ await session.withTransaction(async () => {
116
+ const user = await userModel
117
+ .findOne({ userId, guildId })
118
+ .session(session);
119
+ if (!user)
120
+ throw new Error('USER_NOT_FOUND');
121
+ user.balance += amount;
122
+ await user.save({ session });
123
+ await transactionModel.create([
124
+ {
125
+ userId,
126
+ guildId,
127
+ amount,
128
+ type: 'win',
129
+ source: 'casino',
130
+ betId: raffleId,
131
+ meta: { game }
132
+ }
133
+ ], { session });
134
+ });
135
+ }
136
+ finally {
137
+ session.endSession();
138
+ }
139
+ }
140
+ return {
141
+ refundLockedBet,
142
+ settleCasinoWinnings,
143
+ refundRafflePurchase,
144
+ payRaffleWinner
145
+ };
146
+ }
@@ -0,0 +1,2 @@
1
+ import { defaultCasinoSettings } from '../constants/defaultConfig';
2
+ export type TCasinoSettings = typeof defaultCasinoSettings;
@@ -1,2 +1,2 @@
1
- import { TCasinoSettings } from '../types';
1
+ import type { TCasinoSettings } from '../types/casinoSettings';
2
2
  export declare const calculateRTP: (game: keyof TCasinoSettings, settings: TCasinoSettings[typeof game]) => number | Record<string, number>;
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateRTP = void 0;
4
4
  const constants_1 = require("../constants");
5
5
  const combination = (n, k) => {
6
- if (k > n)
7
- return 0;
8
6
  let result = 1;
9
7
  for (let i = 1; i <= k; i++) {
10
8
  result = (result * (n - i + 1)) / i;
@@ -1,2 +1,2 @@
1
- import type { TCasinoSettings } from '../types';
1
+ import type { TCasinoSettings } from '../types/casinoSettings';
2
2
  export declare const normalizeCasinoSettings: (settings: Partial<TCasinoSettings> | null | undefined) => TCasinoSettings;
@@ -1,4 +1,4 @@
1
- import type { GlobalSettings } from '../constants/defaultGlobalSettings';
1
+ import type { GlobalSettings } from '../guild/constants/defaultGlobalSettings';
2
2
  export declare const formatNumberToReadableString: (number: number) => string;
3
3
  export declare const parseReadableStringToNumber: (readableString: string) => number;
4
4
  export declare const formatNumberWithSpaces: (num: number) => string;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatTransactionTypeLabel = exports.formatTransactionSourceLabel = exports.formatCasinoGameLabel = exports.getReadableName = exports.formatNumberToPercentage = exports.formatMoneyExact = exports.formatMoney = exports.formatNumberWithSpaces = exports.parseReadableStringToNumber = exports.formatNumberToReadableString = void 0;
4
- const defaultConfig_1 = require("../constants/defaultConfig");
5
- const globalSettings_1 = require("./globalSettings");
4
+ const defaultConfig_1 = require("../casino/constants/defaultConfig");
5
+ const globalSettings_1 = require("../guild/utils/globalSettings");
6
6
  const formatAmountWithCurrency = (amount, formattedAbsAmount, globalSettings) => {
7
7
  const negative = amount < 0;
8
8
  const sign = negative ? '-' : '';
@@ -0,0 +1,4 @@
1
+ export * from './formatters';
2
+ export * from './generateId';
3
+ export * from './parseTimeToSeconds';
4
+ export * from './zod';
@@ -14,4 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./mongoose"), exports);
17
+ __exportStar(require("./formatters"), exports);
18
+ __exportStar(require("./generateId"), exports);
19
+ __exportStar(require("./parseTimeToSeconds"), exports);
20
+ __exportStar(require("./zod"), exports);
@@ -0,0 +1,2 @@
1
+ import z from 'zod';
2
+ export declare const num: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.num = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ exports.num = zod_1.default
9
+ .union([zod_1.default.number(), zod_1.default.string()])
10
+ .transform((val) => {
11
+ if (val === '' || val === undefined || val === null)
12
+ return 0;
13
+ const parsed = typeof val === 'string' ? Number(val) : val;
14
+ return Number.isNaN(parsed) ? 0 : parsed;
15
+ })
16
+ .pipe(zod_1.default.number());
@@ -1,18 +1,8 @@
1
1
  import { Schema } from 'mongoose';
2
- import { TGuildConfiguration } from '../types';
3
- export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, import("mongoose").Model<TGuildConfiguration, any, any, any, (import("mongoose").Document<unknown, any, TGuildConfiguration, any, import("mongoose").DefaultSchemaOptions> & TGuildConfiguration & {
4
- _id: import("mongoose").Types.ObjectId;
5
- } & {
6
- __v: number;
7
- } & {
8
- id: string;
9
- }) | (import("mongoose").Document<unknown, any, TGuildConfiguration, any, import("mongoose").DefaultSchemaOptions> & TGuildConfiguration & {
10
- _id: import("mongoose").Types.ObjectId;
11
- } & {
12
- __v: number;
13
- }), any, TGuildConfiguration>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
2
+ import { TGuildConfiguration } from './types/guildConfiguration';
3
+ export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, import("mongoose").Model<TGuildConfiguration, any, any, any, any, any, TGuildConfiguration>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
14
4
  id: string;
15
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
5
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
16
6
  _id: import("mongoose").Types.ObjectId;
17
7
  } & {
18
8
  __v: number;
@@ -21,7 +11,7 @@ export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, impor
21
11
  }, {
22
12
  guildId?: import("mongoose").SchemaDefinitionProperty<string, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
23
13
  id: string;
24
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
14
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
25
15
  _id: import("mongoose").Types.ObjectId;
26
16
  } & {
27
17
  __v: number;
@@ -33,7 +23,7 @@ export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, impor
33
23
  logs: string;
34
24
  }, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
35
25
  id: string;
36
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
26
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
37
27
  _id: import("mongoose").Types.ObjectId;
38
28
  } & {
39
29
  __v: number;
@@ -42,7 +32,7 @@ export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, impor
42
32
  }> | undefined;
43
33
  casinoChannelIds?: import("mongoose").SchemaDefinitionProperty<string[], TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
44
34
  id: string;
45
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
35
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
46
36
  _id: import("mongoose").Types.ObjectId;
47
37
  } & {
48
38
  __v: number;
@@ -51,7 +41,7 @@ export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, impor
51
41
  }> | undefined;
52
42
  winAnnouncementsChannelId?: import("mongoose").SchemaDefinitionProperty<string, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
53
43
  id: string;
54
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
44
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
55
45
  _id: import("mongoose").Types.ObjectId;
56
46
  } & {
57
47
  __v: number;
@@ -63,7 +53,7 @@ export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, impor
63
53
  logs: string;
64
54
  }, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
65
55
  id: string;
66
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
56
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
67
57
  _id: import("mongoose").Types.ObjectId;
68
58
  } & {
69
59
  __v: number;
@@ -75,7 +65,7 @@ export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, impor
75
65
  logs: string;
76
66
  }, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
77
67
  id: string;
78
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
68
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
79
69
  _id: import("mongoose").Types.ObjectId;
80
70
  } & {
81
71
  __v: number;
@@ -84,7 +74,7 @@ export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, impor
84
74
  }> | undefined;
85
75
  managerRoleId?: import("mongoose").SchemaDefinitionProperty<string, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
86
76
  id: string;
87
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
77
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
88
78
  _id: import("mongoose").Types.ObjectId;
89
79
  } & {
90
80
  __v: number;
@@ -192,7 +182,7 @@ export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, impor
192
182
  };
193
183
  }, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
194
184
  id: string;
195
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
185
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
196
186
  _id: import("mongoose").Types.ObjectId;
197
187
  } & {
198
188
  __v: number;
@@ -209,25 +199,25 @@ export declare const GuildConfigurationSchema: Schema<TGuildConfiguration, impor
209
199
  maxMembers: number;
210
200
  }, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
211
201
  id: string;
212
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
202
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
213
203
  _id: import("mongoose").Types.ObjectId;
214
204
  } & {
215
205
  __v: number;
216
206
  }, "id"> & {
217
207
  id: string;
218
208
  }> | undefined;
219
- bonusSettings?: import("mongoose").SchemaDefinitionProperty<import("../types").BonusSettings, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
209
+ bonusSettings?: import("mongoose").SchemaDefinitionProperty<import("../bonus").BonusSettings, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
220
210
  id: string;
221
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
211
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
222
212
  _id: import("mongoose").Types.ObjectId;
223
213
  } & {
224
214
  __v: number;
225
215
  }, "id"> & {
226
216
  id: string;
227
217
  }> | undefined;
228
- globalSettings?: import("mongoose").SchemaDefinitionProperty<import("../constants").GlobalSettings | undefined, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
218
+ globalSettings?: import("mongoose").SchemaDefinitionProperty<import("./constants/defaultGlobalSettings").GlobalSettings | undefined, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
229
219
  id: string;
230
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<TGuildConfiguration & {
220
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
231
221
  _id: import("mongoose").Types.ObjectId;
232
222
  } & {
233
223
  __v: number;
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GuildConfigurationSchema = void 0;
4
4
  const mongoose_1 = require("mongoose");
5
- const constants_1 = require("../constants");
5
+ const defaultConfig_1 = require("../casino/constants/defaultConfig");
6
+ const defaultGlobalSettings_1 = require("./constants/defaultGlobalSettings");
6
7
  exports.GuildConfigurationSchema = new mongoose_1.Schema({
7
8
  guildId: {
8
9
  type: String,
@@ -54,7 +55,7 @@ exports.GuildConfigurationSchema = new mongoose_1.Schema({
54
55
  },
55
56
  casinoSettings: {
56
57
  type: mongoose_1.Schema.Types.Mixed,
57
- default: constants_1.defaultCasinoSettings
58
+ default: defaultConfig_1.defaultCasinoSettings
58
59
  },
59
60
  vipSettings: {
60
61
  roleOwnerId: {
@@ -115,15 +116,15 @@ exports.GuildConfigurationSchema = new mongoose_1.Schema({
115
116
  disableDailyBonus: { type: Boolean, default: false },
116
117
  disableVip: { type: Boolean, default: false },
117
118
  maintenanceMode: { type: Boolean, default: false },
118
- timezone: { type: String, default: constants_1.defaultGlobalSettings.timezone },
119
+ timezone: { type: String, default: defaultGlobalSettings_1.defaultGlobalSettings.timezone },
119
120
  currencySymbol: {
120
121
  type: String,
121
- default: constants_1.defaultGlobalSettings.currencySymbol
122
+ default: defaultGlobalSettings_1.defaultGlobalSettings.currencySymbol
122
123
  },
123
124
  currencyPlacement: {
124
125
  type: String,
125
126
  enum: ['prefix', 'suffix'],
126
- default: constants_1.defaultGlobalSettings.currencyPlacement
127
+ default: defaultGlobalSettings_1.defaultGlobalSettings.currencyPlacement
127
128
  }
128
129
  }
129
130
  });
@@ -0,0 +1,8 @@
1
+ export * from './constants/defaultGlobalSettings';
2
+ export * from './constants/commonTimezones';
3
+ export * from './types/guildConfiguration';
4
+ export * from './utils/globalSettings';
5
+ export * from './utils/normalizeGlobalSettings';
6
+ export * from './utils/guildTimezone';
7
+ export * from './schemas/guild.forms';
8
+ export { GuildConfigurationSchema } from './guildConfiguration.mongoose';