@notidotbot/noti-api-client 1.4.0

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 (115) hide show
  1. package/cname.js +3 -0
  2. package/dist/classes/@me.d.ts +122 -0
  3. package/dist/classes/@me.js +59 -0
  4. package/dist/classes/admin.d.ts +71 -0
  5. package/dist/classes/admin.js +26 -0
  6. package/dist/classes/client.d.ts +156 -0
  7. package/dist/classes/client.js +116 -0
  8. package/dist/classes/emotes.d.ts +31 -0
  9. package/dist/classes/emotes.js +24 -0
  10. package/dist/classes/files.d.ts +36 -0
  11. package/dist/classes/files.js +36 -0
  12. package/dist/classes/guild.d.ts +187 -0
  13. package/dist/classes/guild.js +140 -0
  14. package/dist/classes/guildDrops.d.ts +58 -0
  15. package/dist/classes/guildDrops.js +32 -0
  16. package/dist/classes/guildGiveaway.d.ts +110 -0
  17. package/dist/classes/guildGiveaway.js +76 -0
  18. package/dist/classes/guildPlatform.d.ts +163 -0
  19. package/dist/classes/guildPlatform.js +99 -0
  20. package/dist/classes/guildPlatformAction.d.ts +67 -0
  21. package/dist/classes/guildPlatformAction.js +26 -0
  22. package/dist/classes/guildStarboard.d.ts +66 -0
  23. package/dist/classes/guildStarboard.js +36 -0
  24. package/dist/classes/linked.d.ts +26 -0
  25. package/dist/classes/linked.js +32 -0
  26. package/dist/classes/other.d.ts +83 -0
  27. package/dist/classes/other.js +53 -0
  28. package/dist/classes/platform.d.ts +227 -0
  29. package/dist/classes/platform.js +30 -0
  30. package/dist/classes/premium.d.ts +179 -0
  31. package/dist/classes/premium.js +76 -0
  32. package/dist/classes/sessions.d.ts +42 -0
  33. package/dist/classes/sessions.js +30 -0
  34. package/dist/classes/teams.d.ts +88 -0
  35. package/dist/classes/teams.js +66 -0
  36. package/dist/classes/telemetry.d.ts +32 -0
  37. package/dist/classes/telemetry.js +28 -0
  38. package/dist/classes/user.d.ts +40 -0
  39. package/dist/classes/user.js +30 -0
  40. package/dist/classes/vods.d.ts +55 -0
  41. package/dist/classes/vods.js +38 -0
  42. package/dist/core/manager.d.ts +57 -0
  43. package/dist/core/manager.js +78 -0
  44. package/dist/core/utils.d.ts +4 -0
  45. package/dist/core/utils.js +26 -0
  46. package/dist/index.d.ts +22 -0
  47. package/dist/index.js +42 -0
  48. package/dist/modules/stripe.d.ts +12 -0
  49. package/dist/modules/stripe.js +18 -0
  50. package/dist/other/bitfields.d.ts +283 -0
  51. package/dist/other/bitfields.js +323 -0
  52. package/dist/other/enums.d.ts +2 -0
  53. package/dist/other/enums.js +10 -0
  54. package/dist/other/prisma.d.ts +76 -0
  55. package/dist/other/prisma.js +9 -0
  56. package/dist/other/templates.d.ts +795 -0
  57. package/dist/other/templates.js +706 -0
  58. package/dist/other/types.d.ts +45 -0
  59. package/dist/other/types.js +17 -0
  60. package/dist/other/utils.d.ts +5 -0
  61. package/dist/other/utils.js +51 -0
  62. package/dist/other/zod/client.zod.d.ts +349 -0
  63. package/dist/other/zod/client.zod.js +63 -0
  64. package/dist/other/zod/drops.zod.d.ts +16 -0
  65. package/dist/other/zod/drops.zod.js +93 -0
  66. package/dist/other/zod/giveaways.zod.d.ts +382 -0
  67. package/dist/other/zod/giveaways.zod.js +72 -0
  68. package/dist/other/zod/guild.zod.d.ts +1638 -0
  69. package/dist/other/zod/guild.zod.js +139 -0
  70. package/dist/other/zod/kickStreamer.zod.d.ts +761 -0
  71. package/dist/other/zod/kickStreamer.zod.js +92 -0
  72. package/dist/other/zod/member.zod.d.ts +22 -0
  73. package/dist/other/zod/member.zod.js +15 -0
  74. package/dist/other/zod/r2Storage.zod.d.ts +56 -0
  75. package/dist/other/zod/r2Storage.zod.js +21 -0
  76. package/dist/other/zod/rumbleStreamer.zod.d.ts +530 -0
  77. package/dist/other/zod/rumbleStreamer.zod.js +45 -0
  78. package/dist/other/zod/schema.zod.d.ts +25 -0
  79. package/dist/other/zod/schema.zod.js +168 -0
  80. package/dist/other/zod/starboard.zod.d.ts +167 -0
  81. package/dist/other/zod/starboard.zod.js +46 -0
  82. package/dist/other/zod/team.zod.d.ts +107 -0
  83. package/dist/other/zod/team.zod.js +30 -0
  84. package/dist/other/zod/tiktokStreamer.zod.d.ts +473 -0
  85. package/dist/other/zod/tiktokStreamer.zod.js +46 -0
  86. package/dist/other/zod/twitchStreamer.zod.d.ts +473 -0
  87. package/dist/other/zod/twitchStreamer.zod.js +46 -0
  88. package/dist/other/zod/user.zod.d.ts +678 -0
  89. package/dist/other/zod/user.zod.js +124 -0
  90. package/dist/other/zod/youtubeStreamer.zod.d.ts +476 -0
  91. package/dist/other/zod/youtubeStreamer.zod.js +47 -0
  92. package/dist/other/zod/zod.d.ts +177 -0
  93. package/dist/other/zod/zod.js +60 -0
  94. package/dist/tsconfig.tsbuildinfo +1 -0
  95. package/dist/types.d.ts +37 -0
  96. package/dist/types.js +2 -0
  97. package/package.json +63 -0
  98. package/prisma/generated/index.ts +25 -0
  99. package/prisma/generated/ts-prisma.d.ts +91725 -0
  100. package/prisma/schema/models/client.prisma +89 -0
  101. package/prisma/schema/models/drops.prisma +167 -0
  102. package/prisma/schema/models/giveaways.prisma +82 -0
  103. package/prisma/schema/models/guild.prisma +368 -0
  104. package/prisma/schema/models/kickStreamer.prisma +202 -0
  105. package/prisma/schema/models/member.prisma +10 -0
  106. package/prisma/schema/models/r2Storage.prisma +22 -0
  107. package/prisma/schema/models/rumbleStreamer.prisma +121 -0
  108. package/prisma/schema/models/starboard.prisma +66 -0
  109. package/prisma/schema/models/team.prisma +38 -0
  110. package/prisma/schema/models/tiktokStreamer.prisma +121 -0
  111. package/prisma/schema/models/twitchStreamer.prisma +122 -0
  112. package/prisma/schema/models/user.prisma +212 -0
  113. package/prisma/schema/models/youtubeStreamer.prisma +123 -0
  114. package/prisma/schema/schema.prisma +182 -0
  115. package/prisma.config.ts +6 -0
@@ -0,0 +1,89 @@
1
+ model Client {
2
+ dbId String @id @default(uuid())
3
+
4
+ clientId String @unique
5
+
6
+ totalGiveaways Int? @default(0)
7
+ totalNotifications Int? @default(0)
8
+ statChannels Int? @default(0)
9
+ statusRoles Int? @default(0)
10
+ totalClips Int? @default(0)
11
+ totalVods Int? @default(0)
12
+
13
+ recentWhitelist String[]
14
+ dashWhitelist String[]
15
+ staff String[]
16
+
17
+ faq ClientFAQ[]
18
+ blogs ClientBlog[]
19
+ changelogs ClientChangelog[]
20
+
21
+ logRawDataFor ClientLogRawData[]
22
+ }
23
+
24
+ model ClientFAQ {
25
+ dbId String @id @default(uuid())
26
+
27
+ identifier String @unique
28
+ question String?
29
+ answer String?
30
+
31
+ clientId String
32
+ client Client? @relation(fields: [clientId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
33
+ }
34
+
35
+ model ClientChangelog {
36
+ dbId String @id @default(uuid())
37
+
38
+ identifier String @unique
39
+
40
+ date DateTime
41
+ changes String[]
42
+ title String
43
+
44
+ isPublic Boolean @default(false)
45
+ thumbnail String?
46
+
47
+ clientId String
48
+ client Client? @relation(fields: [clientId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
49
+ }
50
+
51
+ model ClientBlog {
52
+ dbId String @id @default(uuid())
53
+
54
+ identifier String @unique
55
+
56
+ title String
57
+ isPinned Boolean @default(false)
58
+
59
+ views Int? @default(0)
60
+ reactions String[]
61
+ reactionsCount Int? @default(0)
62
+
63
+ tags String[]
64
+ content String
65
+ thumbnail String?
66
+
67
+ authorName String
68
+ authorIcon String
69
+
70
+ createdAt DateTime
71
+ lastEdited DateTime
72
+
73
+ isPublic Boolean @default(false)
74
+
75
+ clientId String
76
+ client Client? @relation(fields: [clientId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
77
+ }
78
+
79
+ model ClientLogRawData {
80
+ dbId String @id @default(uuid())
81
+
82
+ username String
83
+ platform PlatformEnum
84
+
85
+ clientId String
86
+ client Client? @relation(fields: [clientId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
87
+
88
+ @@unique([username, platform, clientId])
89
+ }
@@ -0,0 +1,167 @@
1
+ model Drop {
2
+ dbId String @id @default(uuid())
3
+
4
+ // Platform-specific drop ID
5
+ dropId String @unique
6
+ platform PlatformEnum
7
+
8
+ // Drop information
9
+ name String
10
+ description String? @db.VarChar(2000)
11
+ imageUrl String?
12
+ url String?
13
+
14
+ // Timing
15
+ startsAt DateTime
16
+ endsAt DateTime
17
+ status String // upcoming, active, ended
18
+
19
+ // Organization/Creator info
20
+ organizationId String?
21
+ organizationName String?
22
+ organizationUrl String?
23
+
24
+ // Game/Category relation
25
+ gameId String?
26
+ game DropGame? @relation(fields: [gameId], references: [dbId], onUpdate: Cascade, onDelete: SetNull)
27
+
28
+ // Platform-specific data stored as JSON for flexibility
29
+ // Kick: channels array, rewards array, rule, etc.
30
+ // Twitch: will have different structure
31
+ platformData Json?
32
+
33
+ createdAt DateTime @default(now())
34
+ updatedAt DateTime @updatedAt
35
+
36
+ // Relations
37
+ sentDrops SentDrop[]
38
+
39
+ @@unique([dropId, platform])
40
+ @@index([platform, status])
41
+ @@index([gameId])
42
+ @@index([startsAt])
43
+ @@index([endsAt])
44
+ }
45
+
46
+ model DropGame {
47
+ dbId String @id @default(uuid())
48
+
49
+ // Game/Category information - NOT unique alone because same game can exist on multiple platforms
50
+ gameId String // Platform-specific game ID (e.g., "13" for Rust on Kick, "263490" for Rust on Twitch)
51
+ platform PlatformEnum
52
+ name String
53
+ slug String?
54
+ imageUrl String?
55
+ description String? @db.VarChar(2000)
56
+
57
+ // Platform-specific data
58
+ platformData Json?
59
+
60
+ createdAt DateTime @default(now())
61
+ updatedAt DateTime @updatedAt
62
+
63
+ // Relations
64
+ drops Drop[]
65
+ guildDropsGames GuildDropsGame[]
66
+
67
+ @@unique([gameId, platform]) // Same game ID can exist on different platforms
68
+ @@index([platform])
69
+ @@index([name]) // For searching games by name
70
+ }
71
+
72
+ model GuildDrops {
73
+ dbId String @id @default(uuid())
74
+
75
+ guildId String @unique
76
+
77
+ // Platform-specific enables - user can enable one or both
78
+ kickEnabled Boolean @default(false)
79
+ twitchEnabled Boolean @default(false)
80
+
81
+ // Basic settings
82
+ liveNotifications Boolean @default(false) // Whether to send notifications when drops go live
83
+
84
+ // Discord notification settings
85
+ channelId String?
86
+ roleId String?
87
+
88
+ // Webhook configuration (optional)
89
+ webhook GuildDropsWebhook?
90
+
91
+ // Game filters - which games to notify about
92
+ games GuildDropsGame[]
93
+
94
+ createdAt DateTime @default(now())
95
+ updatedAt DateTime @updatedAt
96
+
97
+ @@index([kickEnabled])
98
+ @@index([twitchEnabled])
99
+ }
100
+
101
+ model GuildDropsWebhook {
102
+ dbId String @id @default(uuid())
103
+
104
+ avatarUrl String?
105
+ username String?
106
+
107
+ guildDropsId String @unique
108
+ guildDrops GuildDrops? @relation(fields: [guildDropsId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
109
+ }
110
+
111
+ model GuildDropsGame {
112
+ dbId String @id @default(uuid())
113
+
114
+ gameId String
115
+ game DropGame? @relation(fields: [gameId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
116
+
117
+ guildDropsId String
118
+ guildDrops GuildDrops? @relation(fields: [guildDropsId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
119
+
120
+ channelId String?
121
+ roleId String?
122
+ liveNotifications Boolean? // If null, uses GuildDrops.liveNotifications
123
+
124
+ // Per-game webhook configuration (overrides GuildDrops webhook)
125
+ webhook GuildDropsGameWebhook?
126
+
127
+ createdAt DateTime @default(now())
128
+
129
+ @@unique([guildDropsId, gameId])
130
+ @@index([gameId])
131
+ }
132
+
133
+ model GuildDropsGameWebhook {
134
+ dbId String @id @default(uuid())
135
+
136
+ avatarUrl String?
137
+ username String?
138
+
139
+ guildDropsGameId String @unique
140
+ guildDropsGame GuildDropsGame? @relation(fields: [guildDropsGameId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
141
+ }
142
+
143
+ model SentDrop {
144
+ dbId String @id @default(uuid())
145
+
146
+ // References
147
+ dropId String
148
+ drop Drop? @relation(fields: [dropId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
149
+
150
+ guildId String
151
+ platform PlatformEnum
152
+
153
+ // Discord message info for potential updates/deletion
154
+ channelId String?
155
+ messageId String?
156
+
157
+ // When was it sent
158
+ sentAt DateTime @default(now())
159
+
160
+ // This will be deleted after the drop ends
161
+ // The drop itself remains for SEO purposes
162
+
163
+ @@unique([dropId, guildId])
164
+ @@index([platform])
165
+ @@index([sentAt])
166
+ @@index([guildId])
167
+ }
@@ -0,0 +1,82 @@
1
+ model GuildGiveaway {
2
+ dbId String @id @default(uuid())
3
+
4
+ giveawayId String @unique
5
+
6
+ guildId String
7
+ channelId String
8
+ messageId String?
9
+
10
+ name String
11
+ winnerIds String[]
12
+
13
+ mentionRole String?
14
+ emojiUnicodeOrId String?
15
+ buttonLabel String?
16
+
17
+ liveEntryCountUpdatedAt DateTime?
18
+ currentEntries GuildGiveawayEntry[]
19
+
20
+ startedAt DateTime?
21
+ durationMinutes Int
22
+ endedAt DateTime?
23
+
24
+ hostId String?
25
+
26
+ maxEntries Int?
27
+ winnerCount Int
28
+ entryFilter GuildGiveawayFilter?
29
+
30
+ disableDoubleVoteEntry Boolean?
31
+
32
+ roleBonusType RoleBonusEnum?
33
+ roleBonuses GuildGiveawayRoleBonus[]
34
+ requirements GuildGiveawayRequirements?
35
+ bypassRequirementsRoles String[]
36
+ }
37
+
38
+ model GuildGiveawayEntry {
39
+ dbId String @id @default(uuid())
40
+
41
+ userId String
42
+ username String
43
+ entries Int
44
+
45
+ guildGiveawayId String
46
+ guildGiveaway GuildGiveaway? @relation(fields: [guildGiveawayId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
47
+ }
48
+
49
+ model GuildGiveawayFilter {
50
+ dbId String @id @default(uuid())
51
+
52
+ roleMode FilterEnum
53
+ roles String[]
54
+
55
+ guildGiveawayId String @unique
56
+ guildGiveaway GuildGiveaway? @relation(fields: [guildGiveawayId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
57
+ }
58
+
59
+ model GuildGiveawayRoleBonus {
60
+ dbId String @id @default(uuid())
61
+
62
+ roles String[]
63
+ additionalEntries Int
64
+
65
+ guildGiveawayId String
66
+ guildGiveaway GuildGiveaway? @relation(fields: [guildGiveawayId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
67
+
68
+ @@unique([guildGiveawayId, additionalEntries])
69
+ }
70
+
71
+ model GuildGiveawayRequirements {
72
+ dbId String @id @default(uuid())
73
+
74
+ joinedServerBefore DateTime?
75
+ accountCreatedBefore DateTime?
76
+ boostingServer Boolean?
77
+ messageCount Int?
78
+ roles String[]
79
+
80
+ guildGiveawayId String @unique
81
+ guildGiveaway GuildGiveaway? @relation(fields: [guildGiveawayId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
82
+ }
@@ -0,0 +1,368 @@
1
+ model Guild {
2
+ dbId String @id @default(uuid())
3
+
4
+ guildId String @unique
5
+ locale String @default("en-US")
6
+ blacklisted Boolean?
7
+
8
+ premium GuildPremium?
9
+
10
+ bitfield String?
11
+ overrideBranding Boolean?
12
+ disableBranding GuildDisableBranding?
13
+
14
+ birthdayRoleId String?
15
+ birthdayChannelId String?
16
+
17
+ welcomeChannelId String?
18
+ leaveChannelId String?
19
+
20
+ birthdayEnabled Boolean?
21
+ welcomeEnabled Boolean?
22
+ leaveEnabled Boolean?
23
+
24
+ syncUsername Boolean?
25
+ vodDownloadStoreForHours Int?
26
+
27
+ disableDoubleVoteEntry Boolean?
28
+ giveawayLogsChannelId String?
29
+
30
+ randomMessages GuildRandomMessage[]
31
+
32
+ autoLiveRoleLogs String?
33
+ autoLiveRoles GuildAutoLiveRole[]
34
+
35
+ statusRoleLogs String?
36
+ statusRoles GuildStatusRole[]
37
+
38
+ linkedRoleLogs String?
39
+ linkedRoles GuildLinkedRole[]
40
+
41
+ notificationOverrides GuildNotificationOverride[]
42
+ ignoreIfNotCatchedByOverride Boolean?
43
+
44
+ singleMessages GuildCustomSingleMessage[]
45
+ messages GuildCustomMessage[]
46
+
47
+ stickyMessages GuildStickyMessage[]
48
+ stickyMessageDelaySeconds Int? @default(10)
49
+
50
+ gettingStarted GuildGettingStarted?
51
+ }
52
+
53
+ model GuildPremium {
54
+ dbId String @id @default(uuid())
55
+
56
+ tier String
57
+
58
+ additionalStickyMessages Int @default(0)
59
+ additionalAutoLiveRoles Int @default(0)
60
+ additionalLinkedRoles Int @default(0)
61
+ additionalStatusRoles Int @default(0)
62
+ additionalStarboards Int @default(0)
63
+ additionalOverrides Int @default(0)
64
+
65
+ additionalKickConnections Int @default(0)
66
+ additionalRumbleConnections Int @default(0)
67
+ additionalTwitchConnections Int @default(0)
68
+ additionalYoutubeConnections Int @default(0)
69
+ additionalTiktokConnections Int @default(0)
70
+
71
+ guildId String @unique
72
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
73
+ }
74
+
75
+ model GuildDisableBranding {
76
+ dbId String @id @default(uuid())
77
+
78
+ stickyMessage Boolean?
79
+ watchOnButton Boolean?
80
+ notifications Boolean?
81
+ welcomeLeave Boolean?
82
+ leaderboard Boolean?
83
+ linkedRoles Boolean?
84
+ giveaways Boolean?
85
+ starboard Boolean?
86
+ birthday Boolean?
87
+ clips Boolean?
88
+ vods Boolean?
89
+
90
+ guildId String @unique
91
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
92
+ }
93
+
94
+ model GuildRandomMessage {
95
+ dbId String @id @default(uuid())
96
+
97
+ type GuildMessageTypeEnum
98
+ messages String[]
99
+
100
+ guildId String
101
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
102
+
103
+ @@unique([guildId, type])
104
+ }
105
+
106
+ model GuildAutoLiveRole {
107
+ dbId String @id @default(uuid())
108
+
109
+ roleId String
110
+ filter GuildAutoLiveRoleFilter?
111
+
112
+ guildId String
113
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
114
+
115
+ @@unique([guildId, roleId])
116
+ }
117
+
118
+ model GuildAutoLiveRoleFilter {
119
+ dbId String @id @default(uuid())
120
+
121
+ mode FilterEnum
122
+ roles String[]
123
+
124
+ guildAutoLiveRoleId String @unique
125
+ guildAutoLiveRole GuildAutoLiveRole? @relation(fields: [guildAutoLiveRoleId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
126
+ }
127
+
128
+ model GuildStatusRole {
129
+ dbId String @id @default(uuid())
130
+
131
+ texts String[]
132
+ roleId String
133
+
134
+ keepOnOffline Boolean? @default(true)
135
+
136
+ filter GuildStatusRoleFilter?
137
+
138
+ guildId String
139
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
140
+
141
+ @@unique([guildId, roleId])
142
+ }
143
+
144
+ model GuildStatusRoleFilter {
145
+ dbId String @id @default(uuid())
146
+
147
+ mode FilterEnum
148
+ roles String[]
149
+
150
+ guildStatusRoleId String @unique
151
+ guildStatusRole GuildStatusRole? @relation(fields: [guildStatusRoleId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
152
+ }
153
+
154
+ model GuildLinkedRole {
155
+ dbId String @id @default(uuid())
156
+
157
+ roleId String
158
+
159
+ onAddRolesToAdd String[]
160
+ onAddRolesToRemove String[]
161
+
162
+ onRemoveRolesToAdd String[]
163
+ onRemoveRolesToRemove String[]
164
+
165
+ guildId String
166
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
167
+
168
+ @@unique([guildId, roleId])
169
+ }
170
+
171
+ model GuildNotificationOverride {
172
+ dbId String @id @default(uuid())
173
+
174
+ query String[]
175
+ queryIn QueryInEnum[]
176
+ applyTo PlatformEnum[]
177
+
178
+ durationMinutes Int?
179
+
180
+ overrideChannelId String?
181
+ overridePingRoleId String?
182
+
183
+ priorityOnConflict Int
184
+ actions OverridesEnum[]
185
+
186
+ guildId String
187
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
188
+
189
+ @@unique([guildId, priorityOnConflict])
190
+ }
191
+
192
+ model GuildCustomSingleMessage {
193
+ dbId String @id @default(uuid())
194
+
195
+ type GuildSingleMessageTypeEnum
196
+ message String? @db.VarChar(100)
197
+
198
+ webhook GuildSingleMessageWebhook?
199
+
200
+ guildId String
201
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
202
+
203
+ @@unique([guildId, type])
204
+ }
205
+
206
+ model GuildSingleMessageWebhook {
207
+ dbId String @id @default(uuid())
208
+
209
+ enabled Boolean?
210
+ username String?
211
+ avatarUrl String?
212
+
213
+ guildCustomSingleMessageId String @unique
214
+ guildCustomSingleMessage GuildCustomSingleMessage? @relation(fields: [guildCustomSingleMessageId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
215
+ }
216
+
217
+ model GuildCustomMessage {
218
+ dbId String @id @default(uuid())
219
+
220
+ type GuildMessageTypeEnum
221
+ content String? @db.VarChar(2000)
222
+
223
+ embed GuildMessageEmbed?
224
+ buttons GuildMessageButton[]
225
+ webhook GuildMessageWebhook?
226
+
227
+ guildId String
228
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
229
+
230
+ @@unique([guildId, type])
231
+ }
232
+
233
+ model GuildMessageEmbed {
234
+ dbId String @id @default(uuid())
235
+
236
+ title String? @db.VarChar(256)
237
+ url String?
238
+ description String @db.VarChar(2048)
239
+ color String? @db.VarChar(10)
240
+ footer String? @db.VarChar(1024)
241
+ footerIcon String?
242
+ image String?
243
+ thumbnail String?
244
+ author String? @db.VarChar(256)
245
+ authorIcon String?
246
+ fields GuildEmbedField[]
247
+
248
+ guildCustomMessageId String @unique
249
+ guildCustomMessage GuildCustomMessage? @relation(fields: [guildCustomMessageId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
250
+ }
251
+
252
+ model GuildEmbedField {
253
+ dbId String @id @default(uuid())
254
+
255
+ name String @db.VarChar(256)
256
+ value String? @db.VarChar(1024)
257
+ inline Boolean?
258
+
259
+ guildMessageEmbedId String
260
+ guildMessageEmbed GuildMessageEmbed? @relation(fields: [guildMessageEmbedId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
261
+ }
262
+
263
+ model GuildMessageButton {
264
+ dbId String @id @default(uuid())
265
+
266
+ title String @db.VarChar(80)
267
+ url String?
268
+
269
+ emojiUnicodeOrId String?
270
+
271
+ guildCustomMessageId String
272
+ guildCustomMessage GuildCustomMessage? @relation(fields: [guildCustomMessageId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
273
+ }
274
+
275
+ model GuildMessageWebhook {
276
+ dbId String @id @default(uuid())
277
+
278
+ enabled Boolean?
279
+ username String?
280
+ avatarUrl String?
281
+
282
+ guildCustomMessageId String @unique
283
+ guildCustomMessage GuildCustomMessage? @relation(fields: [guildCustomMessageId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
284
+ }
285
+
286
+ model GuildStickyMessage {
287
+ dbId String @id @default(uuid())
288
+
289
+ channelId String
290
+ messageId String?
291
+
292
+ content String? @db.VarChar(2000)
293
+
294
+ embed GuildStickyMessageEmbed?
295
+ buttons GuildStickyMessageButton[]
296
+ webhook GuildStickyMessageWebhook?
297
+
298
+ guildId String
299
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
300
+
301
+ @@unique([guildId, channelId])
302
+ }
303
+
304
+ model GuildStickyMessageEmbed {
305
+ dbId String @id @default(uuid())
306
+
307
+ title String? @db.VarChar(256)
308
+ url String?
309
+ description String @db.VarChar(2048)
310
+ color String? @db.VarChar(10)
311
+ footer String? @db.VarChar(1024)
312
+ footerIcon String?
313
+ image String?
314
+ thumbnail String?
315
+ author String? @db.VarChar(256)
316
+ authorIcon String?
317
+ fields GuildStickyEmbedField[]
318
+
319
+ guildStickyMessageId String @unique
320
+ guildStickyMessage GuildStickyMessage? @relation(fields: [guildStickyMessageId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
321
+ }
322
+
323
+ model GuildStickyEmbedField {
324
+ dbId String @id @default(uuid())
325
+
326
+ name String @db.VarChar(256)
327
+ value String? @db.VarChar(1024)
328
+ inline Boolean?
329
+
330
+ guildStickyMessageEmbedId String
331
+ guildStickyMessageEmbed GuildStickyMessageEmbed? @relation(fields: [guildStickyMessageEmbedId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
332
+ }
333
+
334
+ model GuildStickyMessageButton {
335
+ dbId String @id @default(uuid())
336
+
337
+ title String @db.VarChar(80)
338
+ url String?
339
+
340
+ emojiUnicodeOrId String?
341
+
342
+ guildStickyMessageId String
343
+ guildStickyMessage GuildStickyMessage? @relation(fields: [guildStickyMessageId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
344
+ }
345
+
346
+ model GuildStickyMessageWebhook {
347
+ dbId String @id @default(uuid())
348
+
349
+ enabled Boolean?
350
+ username String?
351
+ avatarUrl String?
352
+
353
+ guildStickyMessageId String @unique
354
+ guildStickyMessage GuildStickyMessage? @relation(fields: [guildStickyMessageId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
355
+ }
356
+
357
+ model GuildGettingStarted {
358
+ dbId String @id @default(uuid())
359
+
360
+ didSetupBirthday Boolean?
361
+ didSetupFirstContentCreator Boolean?
362
+ didBuyPremium Boolean?
363
+
364
+ didDismissGuildAds Boolean?
365
+
366
+ guildId String @unique
367
+ guild Guild? @relation(fields: [guildId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
368
+ }