@notidotbot/noti-api-client 1.4.12 → 1.4.13
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.
- package/dist/classes/guild.d.ts +27 -0
- package/dist/classes/guild.js +15 -0
- package/dist/core/manager.d.ts +2 -0
- package/dist/core/manager.js +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/other/zod/drops.zod.d.ts +21 -2
- package/dist/other/zod/drops.zod.js +3 -3
- package/dist/other/zod/guild.zod.d.ts +12 -0
- package/dist/other/zod/guild.zod.js +8 -0
- package/dist/other/zod/r2Storage.zod.d.ts +2 -0
- package/dist/other/zod/r2Storage.zod.js +2 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/prisma/generated/ts-prisma.d.ts +2803 -458
- package/prisma/schema/models/client.prisma +64 -64
- package/prisma/schema/models/drops.prisma +126 -126
- package/prisma/schema/models/giveaways.prisma +49 -49
- package/prisma/schema/models/guild.prisma +238 -224
- package/prisma/schema/models/kickStreamer.prisma +125 -125
- package/prisma/schema/models/member.prisma +5 -5
- package/prisma/schema/models/r2Storage.prisma +13 -11
- package/prisma/schema/models/rumbleStreamer.prisma +73 -73
- package/prisma/schema/models/starboard.prisma +36 -36
- package/prisma/schema/models/team.prisma +21 -21
- package/prisma/schema/models/tiktokStreamer.prisma +74 -74
- package/prisma/schema/models/twitchStreamer.prisma +74 -74
- package/prisma/schema/models/user.prisma +117 -117
- package/prisma/schema/models/youtubeStreamer.prisma +75 -75
|
@@ -1,107 +1,107 @@
|
|
|
1
1
|
model Client {
|
|
2
|
-
|
|
2
|
+
dbId String @id @default(uuid())
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
clientId String @unique
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
recentWhitelist String[]
|
|
14
|
+
dashWhitelist String[]
|
|
15
|
+
staff String[]
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
faq ClientFAQ[]
|
|
18
|
+
blogs ClientBlog[]
|
|
19
|
+
changelogs ClientChangelog[]
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
logRawDataFor ClientLogRawData[]
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
twitchCredentials ClientTwitch?
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
model ClientTwitch {
|
|
27
|
-
|
|
27
|
+
dbId String @id @default(uuid())
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
clientId String @unique
|
|
30
|
+
client Client @relation(fields: [clientId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
twitchGqlClientId String
|
|
33
|
+
twitchGqlAuthToken String
|
|
34
|
+
twitchGqlClientIntegrity String?
|
|
35
|
+
twitchGqlClientSessionId String?
|
|
36
|
+
twitchGqlClientVersion String?
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
updatedAt DateTime @default(now()) @updatedAt
|
|
39
|
+
createdAt DateTime @default(now())
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
model ClientFAQ {
|
|
43
|
-
|
|
43
|
+
dbId String @id @default(uuid())
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
identifier String @unique
|
|
46
|
+
question String?
|
|
47
|
+
answer String?
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
clientId String
|
|
50
|
+
client Client? @relation(fields: [clientId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
model ClientChangelog {
|
|
54
|
-
|
|
54
|
+
dbId String @id @default(uuid())
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
identifier String @unique
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
date DateTime
|
|
59
|
+
changes String[]
|
|
60
|
+
title String
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
isPublic Boolean @default(false)
|
|
63
|
+
thumbnail String?
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
clientId String
|
|
66
|
+
client Client? @relation(fields: [clientId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
model ClientBlog {
|
|
70
|
-
|
|
70
|
+
dbId String @id @default(uuid())
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
identifier String @unique
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
title String
|
|
75
|
+
isPinned Boolean @default(false)
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
views Int? @default(0)
|
|
78
|
+
reactions String[]
|
|
79
|
+
reactionsCount Int? @default(0)
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
tags String[]
|
|
82
|
+
content String
|
|
83
|
+
thumbnail String?
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
authorName String
|
|
86
|
+
authorIcon String
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
createdAt DateTime
|
|
89
|
+
lastEdited DateTime
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
isPublic Boolean @default(false)
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
clientId String
|
|
94
|
+
client Client? @relation(fields: [clientId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
model ClientLogRawData {
|
|
98
|
-
|
|
98
|
+
dbId String @id @default(uuid())
|
|
99
99
|
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
username String
|
|
101
|
+
platform PlatformEnum
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
clientId String
|
|
104
|
+
client Client? @relation(fields: [clientId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
@@unique([username, platform, clientId])
|
|
107
107
|
}
|
|
@@ -1,176 +1,176 @@
|
|
|
1
1
|
model Drop {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
44
|
}
|
|
45
45
|
|
|
46
46
|
model DropGame {
|
|
47
|
-
|
|
47
|
+
dbId String @id @default(uuid())
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
56
|
|
|
57
|
-
|
|
57
|
+
ignored Boolean @default(false) // If true, drops from this game will be ignored globally
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
// Platform-specific data
|
|
60
|
+
platformData Json?
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
createdAt DateTime @default(now())
|
|
63
|
+
updatedAt DateTime @updatedAt
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
// Relations
|
|
66
|
+
drops Drop[]
|
|
67
|
+
guildDropsGames GuildDropsGame[]
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
@@unique([gameId, platform]) // Same game ID can exist on different platforms
|
|
70
|
+
@@index([platform])
|
|
71
|
+
@@index([name]) // For searching games by name
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
model GuildDrops {
|
|
75
|
-
|
|
75
|
+
dbId String @id @default(uuid())
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
guildId String @unique
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
// Platform-specific enables - user can enable one or both
|
|
80
|
+
kickEnabled Boolean @default(false)
|
|
81
|
+
twitchEnabled Boolean @default(false)
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
// Basic settings
|
|
84
|
+
liveNotifications Boolean @default(false) // Whether to send notifications when drops go live
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
86
|
+
// Discord notification settings
|
|
87
|
+
kickChannelId String?
|
|
88
|
+
kickRoleId String?
|
|
89
|
+
twitchChannelId String?
|
|
90
|
+
twitchRoleId String?
|
|
91
|
+
// Platform-specific live notification overrides
|
|
92
|
+
kickLiveNotificationChannelId String?
|
|
93
|
+
kickLiveNotificationRoleId String?
|
|
94
|
+
twitchLiveNotificationChannelId String?
|
|
95
|
+
twitchLiveNotificationRoleId String?
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
// Webhook configuration (optional)
|
|
98
|
+
webhook GuildDropsWebhook?
|
|
99
99
|
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
// Game filters - which games to notify about
|
|
101
|
+
games GuildDropsGame[]
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
createdAt DateTime @default(now())
|
|
104
|
+
updatedAt DateTime @updatedAt
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
@@index([kickEnabled])
|
|
107
|
+
@@index([twitchEnabled])
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
model GuildDropsWebhook {
|
|
111
|
-
|
|
111
|
+
dbId String @id @default(uuid())
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
avatarUrl String?
|
|
114
|
+
username String?
|
|
115
115
|
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
guildDropsId String @unique
|
|
117
|
+
guildDrops GuildDrops? @relation(fields: [guildDropsId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
model GuildDropsGame {
|
|
121
|
-
|
|
121
|
+
dbId String @id @default(uuid())
|
|
122
122
|
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
gameId String
|
|
124
|
+
game DropGame? @relation(fields: [gameId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
125
125
|
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
guildDropsId String
|
|
127
|
+
guildDrops GuildDrops? @relation(fields: [guildDropsId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
129
|
+
channelId String?
|
|
130
|
+
roleId String?
|
|
131
|
+
liveNotifications Boolean? // If null, uses GuildDrops.liveNotifications
|
|
132
132
|
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
// Per-game webhook configuration (overrides GuildDrops webhook)
|
|
134
|
+
webhook GuildDropsGameWebhook?
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
createdAt DateTime @default(now())
|
|
137
137
|
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
@@unique([guildDropsId, gameId])
|
|
139
|
+
@@index([gameId])
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
model GuildDropsGameWebhook {
|
|
143
|
-
|
|
143
|
+
dbId String @id @default(uuid())
|
|
144
144
|
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
avatarUrl String?
|
|
146
|
+
username String?
|
|
147
147
|
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
guildDropsGameId String @unique
|
|
149
|
+
guildDropsGame GuildDropsGame? @relation(fields: [guildDropsGameId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
model SentDrop {
|
|
153
|
-
|
|
153
|
+
dbId String @id @default(uuid())
|
|
154
154
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
155
|
+
// References
|
|
156
|
+
dropId String
|
|
157
|
+
drop Drop? @relation(fields: [dropId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
158
158
|
|
|
159
|
-
|
|
160
|
-
|
|
159
|
+
guildId String
|
|
160
|
+
platform PlatformEnum
|
|
161
161
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
162
|
+
// Discord message info for potential updates/deletion
|
|
163
|
+
channelId String?
|
|
164
|
+
messageId String?
|
|
165
165
|
|
|
166
|
-
|
|
167
|
-
|
|
166
|
+
// When was it sent
|
|
167
|
+
sentAt DateTime @default(now())
|
|
168
168
|
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
// This will be deleted after the drop ends
|
|
170
|
+
// The drop itself remains for SEO purposes
|
|
171
171
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
172
|
+
@@unique([dropId, guildId])
|
|
173
|
+
@@index([platform])
|
|
174
|
+
@@index([sentAt])
|
|
175
|
+
@@index([guildId])
|
|
176
176
|
}
|
|
@@ -1,82 +1,82 @@
|
|
|
1
1
|
model GuildGiveaway {
|
|
2
|
-
|
|
2
|
+
dbId String @id @default(uuid())
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
giveawayId String @unique
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
guildId String
|
|
7
|
+
channelId String
|
|
8
|
+
messageId String?
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
name String
|
|
11
|
+
winnerIds String[]
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
mentionRole String?
|
|
14
|
+
emojiUnicodeOrId String?
|
|
15
|
+
buttonLabel String?
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
liveEntryCountUpdatedAt DateTime?
|
|
18
|
+
currentEntries GuildGiveawayEntry[]
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
startedAt DateTime?
|
|
21
|
+
durationMinutes Int
|
|
22
|
+
endedAt DateTime?
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
hostId String?
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
maxEntries Int?
|
|
27
|
+
winnerCount Int
|
|
28
|
+
entryFilter GuildGiveawayFilter?
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
disableDoubleVoteEntry Boolean?
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
roleBonusType RoleBonusEnum?
|
|
33
|
+
roleBonuses GuildGiveawayRoleBonus[]
|
|
34
|
+
requirements GuildGiveawayRequirements?
|
|
35
|
+
bypassRequirementsRoles String[]
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
model GuildGiveawayEntry {
|
|
39
|
-
|
|
39
|
+
dbId String @id @default(uuid())
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
userId String
|
|
42
|
+
username String
|
|
43
|
+
entries Int
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
guildGiveawayId String
|
|
46
|
+
guildGiveaway GuildGiveaway? @relation(fields: [guildGiveawayId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
model GuildGiveawayFilter {
|
|
50
|
-
|
|
50
|
+
dbId String @id @default(uuid())
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
roleMode FilterEnum
|
|
53
|
+
roles String[]
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
guildGiveawayId String @unique
|
|
56
|
+
guildGiveaway GuildGiveaway? @relation(fields: [guildGiveawayId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
model GuildGiveawayRoleBonus {
|
|
60
|
-
|
|
60
|
+
dbId String @id @default(uuid())
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
roles String[]
|
|
63
|
+
additionalEntries Int
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
guildGiveawayId String
|
|
66
|
+
guildGiveaway GuildGiveaway? @relation(fields: [guildGiveawayId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
@@unique([guildGiveawayId, additionalEntries])
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
model GuildGiveawayRequirements {
|
|
72
|
-
|
|
72
|
+
dbId String @id @default(uuid())
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
joinedServerBefore DateTime?
|
|
75
|
+
accountCreatedBefore DateTime?
|
|
76
|
+
boostingServer Boolean?
|
|
77
|
+
messageCount Int?
|
|
78
|
+
roles String[]
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
guildGiveawayId String @unique
|
|
81
|
+
guildGiveaway GuildGiveaway? @relation(fields: [guildGiveawayId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
82
82
|
}
|