gambling-bot-shared 1.0.0 → 1.0.2

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 (87) hide show
  1. package/dist/atm/atmRequest.mongoose.d.ts +147 -0
  2. package/dist/atm/index.d.ts +2 -0
  3. package/dist/atm/index.js +0 -3
  4. package/dist/atm/schemas/atm.forms.d.ts +5 -0
  5. package/dist/atm/types/atmRequest.d.ts +17 -0
  6. package/dist/blackjack/index.d.ts +2 -0
  7. package/dist/blackjack/index.js +0 -3
  8. package/dist/bonus/constants/bonusLimits.d.ts +4 -0
  9. package/dist/bonus/index.d.ts +7 -0
  10. package/dist/bonus/schemas/bonus.forms.d.ts +16 -0
  11. package/dist/bonus/types/bonus.d.ts +13 -0
  12. package/dist/bonus/utils/bonusStreak.d.ts +7 -0
  13. package/dist/bonus/utils/calculateBonusReward.d.ts +14 -0
  14. package/dist/bonus/utils/generateBonusPreview.d.ts +11 -0
  15. package/dist/bonus/utils/normalizeBonusSettings.d.ts +6 -0
  16. package/dist/casino/blackjackGame.mongoose.d.ts +129 -0
  17. package/dist/casino/constants/blackjack.d.ts +41 -0
  18. package/dist/casino/constants/casinoGames.d.ts +3 -0
  19. package/dist/casino/constants/defaultConfig.d.ts +108 -0
  20. package/dist/casino/constants/index.d.ts +7 -0
  21. package/dist/casino/constants/lotteryConfig.d.ts +2 -0
  22. package/dist/casino/constants/maxSimulations.d.ts +5 -0
  23. package/dist/casino/constants/plinkoConfig.d.ts +15 -0
  24. package/dist/casino/constants/rouletteConfig.d.ts +1 -0
  25. package/dist/casino/index.d.ts +11 -0
  26. package/dist/casino/index.js +0 -3
  27. package/dist/casino/schemas/casino.forms.d.ts +80 -0
  28. package/dist/casino/services/casinoBet.service.d.ts +41 -0
  29. package/dist/casino/types/blackjackGame.d.ts +30 -0
  30. package/dist/casino/types/casinoSettings.d.ts +2 -0
  31. package/dist/casino/utils/calculateRTP.d.ts +2 -0
  32. package/dist/casino/utils/normalizeCasinoSettings.d.ts +2 -0
  33. package/dist/casino/utils/validateBetAmount.d.ts +8 -0
  34. package/dist/casino/utils/winAnnouncements.d.ts +4 -0
  35. package/dist/common/formatters.d.ts +16 -0
  36. package/dist/common/generateId.d.ts +1 -0
  37. package/dist/common/index.d.ts +4 -0
  38. package/dist/common/parseTimeToSeconds.d.ts +1 -0
  39. package/dist/common/zod.d.ts +2 -0
  40. package/dist/guild/constants/commonTimezones.d.ts +4 -0
  41. package/dist/guild/constants/defaultGlobalSettings.d.ts +20 -0
  42. package/dist/guild/guildConfiguration.mongoose.d.ts +227 -0
  43. package/dist/guild/index.d.ts +7 -0
  44. package/dist/guild/index.js +0 -3
  45. package/dist/guild/schemas/guild.forms.d.ts +68 -0
  46. package/dist/guild/types/guildConfiguration.d.ts +35 -0
  47. package/dist/guild/utils/globalSettings.d.ts +6 -0
  48. package/dist/guild/utils/guildTimezone.d.ts +6 -0
  49. package/dist/guild/utils/normalizeGlobalSettings.d.ts +2 -0
  50. package/dist/mongoose/index.d.ts +8 -0
  51. package/dist/predictions/index.d.ts +10 -0
  52. package/dist/predictions/index.js +0 -3
  53. package/dist/predictions/prediction.mongoose.d.ts +102 -0
  54. package/dist/predictions/schemas/prediction.forms.d.ts +20 -0
  55. package/dist/predictions/services/normalizePredictionInput.d.ts +6 -0
  56. package/dist/predictions/services/parsePredictionAutolock.d.ts +9 -0
  57. package/dist/predictions/services/parsePredictionChoices.d.ts +11 -0
  58. package/dist/predictions/services/prediction.db.d.ts +55 -0
  59. package/dist/predictions/services/predictionLifecycle.service.d.ts +25 -0
  60. package/dist/predictions/services/predictionSummary.d.ts +30 -0
  61. package/dist/predictions/services/types.d.ts +27 -0
  62. package/dist/predictions/types/prediction.d.ts +21 -0
  63. package/dist/predictions/utils/validatePredictionBet.d.ts +13 -0
  64. package/dist/raffle/index.d.ts +5 -0
  65. package/dist/raffle/index.js +0 -3
  66. package/dist/raffle/raffle.mongoose.d.ts +138 -0
  67. package/dist/raffle/schemas/raffle.forms.d.ts +11 -0
  68. package/dist/raffle/services/raffle.db.d.ts +51 -0
  69. package/dist/raffle/services/raffleLifecycle.service.d.ts +15 -0
  70. package/dist/raffle/services/types.d.ts +27 -0
  71. package/dist/raffle/types/raffle.d.ts +21 -0
  72. package/dist/transactions/constants/gameRecordFields.d.ts +8 -0
  73. package/dist/transactions/constants/index.d.ts +2 -0
  74. package/dist/transactions/constants/transaction.d.ts +2 -0
  75. package/dist/transactions/index.d.ts +4 -0
  76. package/dist/transactions/transaction.mongoose.d.ts +93 -0
  77. package/dist/transactions/types/transaction.d.ts +15 -0
  78. package/dist/user/index.d.ts +1 -0
  79. package/dist/user/index.js +0 -3
  80. package/dist/user/types/user.d.ts +11 -0
  81. package/dist/user/user.mongoose.d.ts +93 -0
  82. package/dist/vip/index.d.ts +2 -0
  83. package/dist/vip/index.js +0 -3
  84. package/dist/vip/schemas/vip.forms.d.ts +10 -0
  85. package/dist/vip/types/vipRoom.d.ts +9 -0
  86. package/dist/vip/vipRoom.mongoose.d.ts +75 -0
  87. package/package.json +1 -1
@@ -0,0 +1,80 @@
1
+ import z from 'zod';
2
+ export declare const casinoChannelsFormSchema: z.ZodObject<{
3
+ casinoChannelIds: z.ZodArray<z.ZodString>;
4
+ winAnnouncementsChannelId: z.ZodString;
5
+ }, z.core.$strip>;
6
+ export declare const casinoSettingsSchema: z.ZodObject<{
7
+ dice: z.ZodObject<{
8
+ winMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
9
+ minBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
10
+ maxBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
11
+ }, z.core.$strip>;
12
+ coinflip: z.ZodObject<{
13
+ winMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
14
+ minBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
15
+ maxBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
16
+ }, z.core.$strip>;
17
+ slots: z.ZodObject<{
18
+ winMultipliers: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>>;
19
+ symbolWeights: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>>;
20
+ minBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
21
+ maxBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
22
+ }, z.core.$strip>;
23
+ lottery: z.ZodObject<{
24
+ winMultipliers: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>>;
25
+ minBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
26
+ maxBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
27
+ }, z.core.$strip>;
28
+ roulette: z.ZodObject<{
29
+ winMultipliers: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>>;
30
+ minBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
31
+ maxBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
32
+ }, z.core.$strip>;
33
+ rps: z.ZodObject<{
34
+ casinoCut: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
35
+ minBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
36
+ maxBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
37
+ }, z.core.$strip>;
38
+ goldenJackpot: z.ZodObject<{
39
+ winMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
40
+ oneInChance: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
41
+ minBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
42
+ maxBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
43
+ }, z.core.$strip>;
44
+ blackjack: z.ZodObject<{
45
+ minBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
46
+ maxBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
47
+ }, z.core.$strip>;
48
+ prediction: z.ZodObject<{
49
+ minBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
50
+ maxBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
51
+ }, z.core.$strip>;
52
+ raffle: z.ZodObject<{
53
+ casinoCut: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
54
+ }, z.core.$strip>;
55
+ plinko: z.ZodObject<{
56
+ binMultipliers: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>>, z.ZodTransform<{
57
+ 1: number;
58
+ 2: number;
59
+ 3: number;
60
+ 4: number;
61
+ 5: number;
62
+ 6: number;
63
+ 7: number;
64
+ 8: number;
65
+ 9: number;
66
+ }, Record<string, number>>>;
67
+ minBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
68
+ maxBet: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
69
+ }, z.core.$strip>;
70
+ winAnnouncements: z.ZodObject<{
71
+ plinkoMinMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
72
+ goldenJackpotMinMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
73
+ slotsMinMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
74
+ lotteryMinMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
75
+ rouletteMinMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
76
+ blackjackMinMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
77
+ diceMinMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
78
+ coinflipMinMultiplier: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
79
+ }, z.core.$strip>;
80
+ }, z.core.$strip>;
@@ -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,30 @@
1
+ import { SUITES, VALUES } from '../constants/blackjack';
2
+ export type Suite = (typeof SUITES)[number];
3
+ export type CardLabel = (typeof VALUES)[number]['label'];
4
+ export type Card = {
5
+ suite: Suite;
6
+ label: CardLabel;
7
+ value: number;
8
+ };
9
+ export type GamePhase = 'PLAYER' | 'DEALER' | 'FINISHED';
10
+ export type TBlackjackHand = {
11
+ cards: Card[];
12
+ betAmount: number;
13
+ finished: boolean;
14
+ isSplitHand: boolean;
15
+ };
16
+ export type TBlackjackGame = {
17
+ userId: string;
18
+ guildId: string;
19
+ channelId: string;
20
+ messageId: string;
21
+ betId: string;
22
+ deck: Card[];
23
+ deckIndex: number;
24
+ hands: TBlackjackHand[];
25
+ activeHandIndex: number;
26
+ phase: GamePhase;
27
+ dealerCards: Card[];
28
+ createdAt: Date;
29
+ updatedAt: Date;
30
+ };
@@ -0,0 +1,2 @@
1
+ import { defaultCasinoSettings } from '../constants/defaultConfig';
2
+ export type TCasinoSettings = typeof defaultCasinoSettings;
@@ -0,0 +1,2 @@
1
+ import type { TCasinoSettings } from '../types/casinoSettings';
2
+ export declare const calculateRTP: (game: keyof TCasinoSettings, settings: TCasinoSettings[typeof game]) => number | Record<string, number>;
@@ -0,0 +1,2 @@
1
+ import type { TCasinoSettings } from '../types/casinoSettings';
2
+ export declare const normalizeCasinoSettings: (settings: Partial<TCasinoSettings> | null | undefined) => TCasinoSettings;
@@ -0,0 +1,8 @@
1
+ export type BetValidationError = 'INVALID_NUMBER' | 'TOO_MANY_DECIMALS' | 'BELOW_MINIMUM' | 'ABOVE_MAXIMUM' | 'BELOW_MIN_BET';
2
+ export type BetValidationResult = {
3
+ ok: true;
4
+ } | {
5
+ ok: false;
6
+ error: BetValidationError;
7
+ };
8
+ export declare const validateBetAmount: (betAmount: number, maxBet: number, minBet: number) => BetValidationResult;
@@ -0,0 +1,4 @@
1
+ /** minMultiplier <= 0 disables announcements for that game */
2
+ export declare const shouldAnnounceByMultiplier: (multiplier: number, minMultiplier: number) => boolean;
3
+ export declare const shouldAnnouncePlinkoBall: (multiplier: number, plinkoMinMultiplier: number) => boolean;
4
+ export declare const shouldAnnounceGoldenJackpotHit: (winMultiplier: number, goldenJackpotMinMultiplier: number) => boolean;
@@ -0,0 +1,16 @@
1
+ import type { GlobalSettings } from '../guild/constants/defaultGlobalSettings';
2
+ export declare const formatNumberToReadableString: (number: number) => string;
3
+ export declare const parseReadableStringToNumber: (readableString: string) => number;
4
+ export declare const formatNumberWithSpaces: (num: number) => string;
5
+ /** Compact amount with guild currency (prefix or suffix symbol). */
6
+ export declare const formatMoney: (amount: number, globalSettings?: Partial<GlobalSettings> | null) => string;
7
+ /** Full-precision amount with guild currency (prefix or suffix symbol). */
8
+ export declare const formatMoneyExact: (amount: number, globalSettings?: Partial<GlobalSettings> | null) => string;
9
+ export declare const formatNumberToPercentage: (num: number) => string;
10
+ export declare const getReadableName: (key: string, map: {
11
+ name: string;
12
+ value: string;
13
+ }[]) => string;
14
+ export declare const formatCasinoGameLabel: (gameId: string) => string;
15
+ export declare const formatTransactionSourceLabel: (source: string) => string;
16
+ export declare const formatTransactionTypeLabel: (type: string) => string;
@@ -0,0 +1 @@
1
+ export declare const generateId: () => string;
@@ -0,0 +1,4 @@
1
+ export * from './formatters';
2
+ export * from './generateId';
3
+ export * from './parseTimeToSeconds';
4
+ export * from './zod';
@@ -0,0 +1 @@
1
+ export declare const parseTimeToSeconds: (time: string) => number;
@@ -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,4 @@
1
+ /** Curated IANA zones for admin selects (v1). */
2
+ export declare const COMMON_TIMEZONES: readonly ["UTC", "Europe/London", "Europe/Paris", "Europe/Berlin", "Europe/Prague", "Europe/Warsaw", "Europe/Athens", "Europe/Moscow", "America/New_York", "America/Chicago", "America/Denver", "America/Los_Angeles", "America/Toronto", "America/Sao_Paulo", "America/Mexico_City", "Asia/Dubai", "Asia/Kolkata", "Asia/Bangkok", "Asia/Singapore", "Asia/Hong_Kong", "Asia/Tokyo", "Asia/Seoul", "Australia/Sydney", "Australia/Melbourne", "Pacific/Auckland"];
3
+ export type CommonTimezone = (typeof COMMON_TIMEZONES)[number];
4
+ export declare const isCommonTimezone: (value: string) => value is CommonTimezone;
@@ -0,0 +1,20 @@
1
+ export type CurrencyPlacement = 'prefix' | 'suffix';
2
+ export type GlobalSettings = {
3
+ disableRegistrations: boolean;
4
+ disableDeposits: boolean;
5
+ disableWithdrawals: boolean;
6
+ disableCasinoGames: boolean;
7
+ disableCasinoGamesForMods: boolean;
8
+ disablePredictions: boolean;
9
+ disablePredictionManagement: boolean;
10
+ disableRaffles: boolean;
11
+ disableRaffleManagement: boolean;
12
+ disableDailyBonus: boolean;
13
+ disableVip: boolean;
14
+ maintenanceMode: boolean;
15
+ timezone: string;
16
+ currencySymbol: string;
17
+ /** prefix: symbol before amount ($1.5k). suffix: symbol after amount (1.5kCZK). Spacing is part of currencySymbol. */
18
+ currencyPlacement: CurrencyPlacement;
19
+ };
20
+ export declare const defaultGlobalSettings: GlobalSettings;
@@ -0,0 +1,227 @@
1
+ import { Schema } from 'mongoose';
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, {
4
+ id: string;
5
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
6
+ _id: import("mongoose").Types.ObjectId;
7
+ } & {
8
+ __v: number;
9
+ }, "id"> & {
10
+ id: string;
11
+ }, {
12
+ guildId?: import("mongoose").SchemaDefinitionProperty<string, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
13
+ id: string;
14
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
15
+ _id: import("mongoose").Types.ObjectId;
16
+ } & {
17
+ __v: number;
18
+ }, "id"> & {
19
+ id: string;
20
+ }> | undefined;
21
+ atmChannelIds?: import("mongoose").SchemaDefinitionProperty<{
22
+ actions: string;
23
+ logs: string;
24
+ }, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
25
+ id: string;
26
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
27
+ _id: import("mongoose").Types.ObjectId;
28
+ } & {
29
+ __v: number;
30
+ }, "id"> & {
31
+ id: string;
32
+ }> | undefined;
33
+ casinoChannelIds?: import("mongoose").SchemaDefinitionProperty<string[], TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
34
+ id: string;
35
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
36
+ _id: import("mongoose").Types.ObjectId;
37
+ } & {
38
+ __v: number;
39
+ }, "id"> & {
40
+ id: string;
41
+ }> | undefined;
42
+ winAnnouncementsChannelId?: import("mongoose").SchemaDefinitionProperty<string, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
43
+ id: string;
44
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
45
+ _id: import("mongoose").Types.ObjectId;
46
+ } & {
47
+ __v: number;
48
+ }, "id"> & {
49
+ id: string;
50
+ }> | undefined;
51
+ predictionChannelIds?: import("mongoose").SchemaDefinitionProperty<{
52
+ actions: string;
53
+ logs: string;
54
+ }, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
55
+ id: string;
56
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
57
+ _id: import("mongoose").Types.ObjectId;
58
+ } & {
59
+ __v: number;
60
+ }, "id"> & {
61
+ id: string;
62
+ }> | undefined;
63
+ raffleChannelIds?: import("mongoose").SchemaDefinitionProperty<{
64
+ actions: string;
65
+ logs: string;
66
+ }, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
67
+ id: string;
68
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
69
+ _id: import("mongoose").Types.ObjectId;
70
+ } & {
71
+ __v: number;
72
+ }, "id"> & {
73
+ id: string;
74
+ }> | undefined;
75
+ managerRoleId?: import("mongoose").SchemaDefinitionProperty<string, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
76
+ id: string;
77
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
78
+ _id: import("mongoose").Types.ObjectId;
79
+ } & {
80
+ __v: number;
81
+ }, "id"> & {
82
+ id: string;
83
+ }> | undefined;
84
+ casinoSettings?: import("mongoose").SchemaDefinitionProperty<{
85
+ dice: {
86
+ winMultiplier: number;
87
+ maxBet: number;
88
+ minBet: number;
89
+ };
90
+ coinflip: {
91
+ winMultiplier: number;
92
+ maxBet: number;
93
+ minBet: number;
94
+ };
95
+ slots: {
96
+ winMultipliers: {
97
+ '\uD83C\uDF52\uD83C\uDF52\uD83C\uDF52': number;
98
+ '\uD83E\uDED0\uD83E\uDED0\uD83E\uDED0': number;
99
+ '\uD83C\uDF49\uD83C\uDF49\uD83C\uDF49': number;
100
+ '\uD83D\uDD14\uD83D\uDD14\uD83D\uDD14': number;
101
+ '7\uFE0F\u20E37\uFE0F\u20E37\uFE0F\u20E3': number;
102
+ };
103
+ symbolWeights: {
104
+ '\uD83C\uDF52': number;
105
+ '\uD83E\uDED0': number;
106
+ '\uD83C\uDF49': number;
107
+ '\uD83D\uDD14': number;
108
+ '7\uFE0F\u20E3': number;
109
+ };
110
+ maxBet: number;
111
+ minBet: number;
112
+ };
113
+ lottery: {
114
+ winMultipliers: {
115
+ 4: number;
116
+ 3: number;
117
+ 2: number;
118
+ 1: number;
119
+ 0: number;
120
+ };
121
+ maxBet: number;
122
+ minBet: number;
123
+ };
124
+ roulette: {
125
+ winMultipliers: {
126
+ number: number;
127
+ color: number;
128
+ parity: number;
129
+ range: number;
130
+ dozen: number;
131
+ column: number;
132
+ };
133
+ maxBet: number;
134
+ minBet: number;
135
+ };
136
+ rps: {
137
+ casinoCut: number;
138
+ maxBet: number;
139
+ minBet: number;
140
+ };
141
+ goldenJackpot: {
142
+ winMultiplier: number;
143
+ oneInChance: number;
144
+ maxBet: number;
145
+ minBet: number;
146
+ };
147
+ blackjack: {
148
+ maxBet: number;
149
+ minBet: number;
150
+ };
151
+ prediction: {
152
+ maxBet: number;
153
+ minBet: number;
154
+ };
155
+ raffle: {
156
+ casinoCut: number;
157
+ };
158
+ plinko: {
159
+ binMultipliers: {
160
+ 1: number;
161
+ 2: number;
162
+ 3: number;
163
+ 4: number;
164
+ 5: number;
165
+ 6: number;
166
+ 7: number;
167
+ 8: number;
168
+ 9: number;
169
+ };
170
+ maxBet: number;
171
+ minBet: number;
172
+ };
173
+ winAnnouncements: {
174
+ plinkoMinMultiplier: number;
175
+ goldenJackpotMinMultiplier: number;
176
+ slotsMinMultiplier: number;
177
+ lotteryMinMultiplier: number;
178
+ rouletteMinMultiplier: number;
179
+ blackjackMinMultiplier: number;
180
+ diceMinMultiplier: number;
181
+ coinflipMinMultiplier: number;
182
+ };
183
+ }, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
184
+ id: string;
185
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
186
+ _id: import("mongoose").Types.ObjectId;
187
+ } & {
188
+ __v: number;
189
+ }, "id"> & {
190
+ id: string;
191
+ }> | undefined;
192
+ vipSettings?: import("mongoose").SchemaDefinitionProperty<{
193
+ roleOwnerId: string;
194
+ roleMemberId: string;
195
+ categoryId: string;
196
+ pricePerDay: number;
197
+ pricePerCreate: number;
198
+ pricePerAdditionalMember: number;
199
+ maxMembers: number;
200
+ }, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
201
+ id: string;
202
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
203
+ _id: import("mongoose").Types.ObjectId;
204
+ } & {
205
+ __v: number;
206
+ }, "id"> & {
207
+ id: string;
208
+ }> | undefined;
209
+ bonusSettings?: import("mongoose").SchemaDefinitionProperty<import("../bonus").BonusSettings, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
210
+ id: string;
211
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
212
+ _id: import("mongoose").Types.ObjectId;
213
+ } & {
214
+ __v: number;
215
+ }, "id"> & {
216
+ id: string;
217
+ }> | undefined;
218
+ globalSettings?: import("mongoose").SchemaDefinitionProperty<import("./constants/defaultGlobalSettings").GlobalSettings | undefined, TGuildConfiguration, import("mongoose").Document<unknown, {}, TGuildConfiguration, {
219
+ id: string;
220
+ }, import("mongoose").DefaultSchemaOptions> & Omit<TGuildConfiguration & {
221
+ _id: import("mongoose").Types.ObjectId;
222
+ } & {
223
+ __v: number;
224
+ }, "id"> & {
225
+ id: string;
226
+ }> | undefined;
227
+ }, TGuildConfiguration>;
@@ -0,0 +1,7 @@
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';
@@ -14,7 +14,6 @@ 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
- exports.GuildConfigurationSchema = void 0;
18
17
  __exportStar(require("./constants/defaultGlobalSettings"), exports);
19
18
  __exportStar(require("./constants/commonTimezones"), exports);
20
19
  __exportStar(require("./types/guildConfiguration"), exports);
@@ -22,5 +21,3 @@ __exportStar(require("./utils/globalSettings"), exports);
22
21
  __exportStar(require("./utils/normalizeGlobalSettings"), exports);
23
22
  __exportStar(require("./utils/guildTimezone"), exports);
24
23
  __exportStar(require("./schemas/guild.forms"), exports);
25
- var guildConfiguration_mongoose_1 = require("./guildConfiguration.mongoose");
26
- Object.defineProperty(exports, "GuildConfigurationSchema", { enumerable: true, get: function () { return guildConfiguration_mongoose_1.GuildConfigurationSchema; } });
@@ -0,0 +1,68 @@
1
+ import z from 'zod';
2
+ export declare const channelsFormSchema: z.ZodObject<{
3
+ atm: z.ZodObject<{
4
+ actions: z.ZodString;
5
+ logs: z.ZodString;
6
+ }, z.core.$strip>;
7
+ casino: z.ZodObject<{
8
+ casinoChannelIds: z.ZodArray<z.ZodString>;
9
+ winAnnouncementsChannelId: z.ZodString;
10
+ }, z.core.$strip>;
11
+ prediction: z.ZodObject<{
12
+ actions: z.ZodString;
13
+ logs: z.ZodString;
14
+ }, z.core.$strip>;
15
+ raffle: z.ZodObject<{
16
+ actions: z.ZodString;
17
+ logs: z.ZodString;
18
+ }, z.core.$strip>;
19
+ }, z.core.$strip>;
20
+ export declare const managerRoleFormSchema: z.ZodObject<{
21
+ managerRoleId: z.ZodString;
22
+ }, z.core.$strip>;
23
+ export declare const globalSettingsFormSchema: z.ZodObject<{
24
+ disableRegistrations: z.ZodBoolean;
25
+ disableDeposits: z.ZodBoolean;
26
+ disableWithdrawals: z.ZodBoolean;
27
+ disableCasinoGames: z.ZodBoolean;
28
+ disableCasinoGamesForMods: z.ZodBoolean;
29
+ disablePredictions: z.ZodBoolean;
30
+ disablePredictionManagement: z.ZodBoolean;
31
+ disableRaffles: z.ZodBoolean;
32
+ disableRaffleManagement: z.ZodBoolean;
33
+ disableDailyBonus: z.ZodBoolean;
34
+ disableVip: z.ZodBoolean;
35
+ maintenanceMode: z.ZodBoolean;
36
+ timezone: z.ZodEnum<{
37
+ UTC: "UTC";
38
+ "Europe/London": "Europe/London";
39
+ "Europe/Paris": "Europe/Paris";
40
+ "Europe/Berlin": "Europe/Berlin";
41
+ "Europe/Prague": "Europe/Prague";
42
+ "Europe/Warsaw": "Europe/Warsaw";
43
+ "Europe/Athens": "Europe/Athens";
44
+ "Europe/Moscow": "Europe/Moscow";
45
+ "America/New_York": "America/New_York";
46
+ "America/Chicago": "America/Chicago";
47
+ "America/Denver": "America/Denver";
48
+ "America/Los_Angeles": "America/Los_Angeles";
49
+ "America/Toronto": "America/Toronto";
50
+ "America/Sao_Paulo": "America/Sao_Paulo";
51
+ "America/Mexico_City": "America/Mexico_City";
52
+ "Asia/Dubai": "Asia/Dubai";
53
+ "Asia/Kolkata": "Asia/Kolkata";
54
+ "Asia/Bangkok": "Asia/Bangkok";
55
+ "Asia/Singapore": "Asia/Singapore";
56
+ "Asia/Hong_Kong": "Asia/Hong_Kong";
57
+ "Asia/Tokyo": "Asia/Tokyo";
58
+ "Asia/Seoul": "Asia/Seoul";
59
+ "Australia/Sydney": "Australia/Sydney";
60
+ "Australia/Melbourne": "Australia/Melbourne";
61
+ "Pacific/Auckland": "Pacific/Auckland";
62
+ }>;
63
+ currencySymbol: z.ZodString;
64
+ currencyPlacement: z.ZodEnum<{
65
+ prefix: "prefix";
66
+ suffix: "suffix";
67
+ }>;
68
+ }, z.core.$strip>;
@@ -0,0 +1,35 @@
1
+ import type { BonusSettings } from '../../bonus/types/bonus';
2
+ import { defaultCasinoSettings } from '../../casino/constants/defaultConfig';
3
+ import type { GlobalSettings } from '../constants/defaultGlobalSettings';
4
+ export type RewardMode = 'linear' | 'exponential';
5
+ export type TGuildConfiguration = {
6
+ guildId: string;
7
+ atmChannelIds: {
8
+ actions: string;
9
+ logs: string;
10
+ };
11
+ casinoChannelIds: string[];
12
+ winAnnouncementsChannelId: string;
13
+ predictionChannelIds: {
14
+ actions: string;
15
+ logs: string;
16
+ };
17
+ raffleChannelIds: {
18
+ actions: string;
19
+ logs: string;
20
+ };
21
+ managerRoleId: string;
22
+ casinoSettings: typeof defaultCasinoSettings;
23
+ vipSettings: {
24
+ roleOwnerId: string;
25
+ roleMemberId: string;
26
+ categoryId: string;
27
+ pricePerDay: number;
28
+ pricePerCreate: number;
29
+ pricePerAdditionalMember: number;
30
+ maxMembers: number;
31
+ };
32
+ bonusSettings: BonusSettings;
33
+ globalSettings?: GlobalSettings;
34
+ };
35
+ export type { GlobalSettings } from '../constants/defaultGlobalSettings';
@@ -0,0 +1,6 @@
1
+ import { type CurrencyPlacement, type GlobalSettings } from '../constants/defaultGlobalSettings';
2
+ import type { TGuildConfiguration } from '../types/guildConfiguration';
3
+ export type GlobalFeature = 'registration' | 'deposit' | 'withdraw' | 'casinoGames' | 'casinoGamesForMods' | 'predictions' | 'predictionManagement' | 'raffles' | 'raffleManagement' | 'dailyBonus' | 'vip' | 'maintenance';
4
+ export declare function isGlobalFeatureDisabled(config: TGuildConfiguration | null | undefined, feature: GlobalFeature): boolean;
5
+ export declare const getCurrencyPlacement: (globalSettings?: Partial<GlobalSettings> | null) => CurrencyPlacement;
6
+ export declare const getCurrencySymbol: (globalSettings?: Partial<GlobalSettings> | null) => string;
@@ -0,0 +1,6 @@
1
+ export declare const resolveGuildTimezone: (timezone?: string | null) => string;
2
+ /** Calendar dates (yyyy-MM-dd) interpreted in the guild timezone → UTC bounds for MongoDB. */
3
+ export declare const guildCalendarRangeToUtc: (dateFrom: string, dateTo: string, timezone?: string | null) => {
4
+ start: Date;
5
+ end: Date;
6
+ };
@@ -0,0 +1,2 @@
1
+ import { type GlobalSettings } from '../constants/defaultGlobalSettings';
2
+ export declare const normalizeGlobalSettings: (settings: Partial<GlobalSettings> | null | undefined) => GlobalSettings;
@@ -0,0 +1,8 @@
1
+ export { UserSchema } from '../user/user.mongoose';
2
+ export { VipRoomSchema } from '../vip/vipRoom.mongoose';
3
+ export { PredictionSchema } from '../predictions/prediction.mongoose';
4
+ export { TransactionSchema } from '../transactions/transaction.mongoose';
5
+ export { GuildConfigurationSchema } from '../guild/guildConfiguration.mongoose';
6
+ export { AtmRequestSchema } from '../atm/atmRequest.mongoose';
7
+ export { RaffleSchema } from '../raffle/raffle.mongoose';
8
+ export { BlackjackGameSchema } from '../casino/blackjackGame.mongoose';
@@ -0,0 +1,10 @@
1
+ export * from './types/prediction';
2
+ export * from './utils/validatePredictionBet';
3
+ export * from './services/types';
4
+ export * from './services/parsePredictionChoices';
5
+ export * from './services/parsePredictionAutolock';
6
+ export * from './services/normalizePredictionInput';
7
+ export * from './services/predictionSummary';
8
+ export * from './services/prediction.db';
9
+ export * from './services/predictionLifecycle.service';
10
+ export * from './schemas/prediction.forms';