@notidotbot/noti-api-client 1.4.22 → 1.4.24
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/games.d.ts +79 -1
- package/dist/classes/games.js +9 -0
- package/dist/other/zod/gameConfig.zod.d.ts +26 -0
- package/dist/other/zod/gameConfig.zod.js +15 -0
- package/dist/other/zod/schema.zod.d.ts +5 -0
- package/dist/other/zod/schema.zod.js +6 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/prisma/generated/ts-prisma.d.ts +417 -66
- package/prisma/schema/models/gameConfig.prisma +30 -0
- package/prisma/schema/schema.prisma +9 -0
|
@@ -61,9 +61,15 @@ model GuildGameConfig {
|
|
|
61
61
|
changelogChannelId String?
|
|
62
62
|
changelogPingRoleId String?
|
|
63
63
|
|
|
64
|
+
// Roblox experience tracking (updates + experience events) — independent of price tracking
|
|
65
|
+
// (free-to-play Roblox games have no price). Default channel/role for `roblox.*` pings.
|
|
66
|
+
robloxChannelId String?
|
|
67
|
+
robloxPingRoleId String?
|
|
68
|
+
|
|
64
69
|
categoryRoutes GuildGameCategoryRoute[]
|
|
65
70
|
trackedGames GuildTrackedGame[]
|
|
66
71
|
changelogGames GuildGameChangelog[]
|
|
72
|
+
robloxGames GuildRobloxGame[]
|
|
67
73
|
}
|
|
68
74
|
|
|
69
75
|
// PREMIUM: per-category channel/role routing. The first route (lowest `priority`) whose
|
|
@@ -138,4 +144,28 @@ model GuildGameChangelog {
|
|
|
138
144
|
gameConfig GuildGameConfig? @relation(fields: [gameConfigId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
139
145
|
|
|
140
146
|
@@unique([gameConfigId, steamAppId])
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// A Roblox experience this guild follows for updates and/or experience events (roblox.update /
|
|
150
|
+
// roblox.event). Keyed by canonical root `placeId` (what the user pastes / `roblox.com/games/<id>`);
|
|
151
|
+
// `universeId` is resolved by the gameApi and kept as a secondary match key. IDs are stored as
|
|
152
|
+
// strings because Roblox ids overflow a 32-bit Int (and to match how every other id is stored).
|
|
153
|
+
model GuildRobloxGame {
|
|
154
|
+
dbId String @id @default(uuid())
|
|
155
|
+
|
|
156
|
+
placeId String
|
|
157
|
+
universeId String? // resolved by the gameApi watchlist; null until first poll
|
|
158
|
+
title String?
|
|
159
|
+
|
|
160
|
+
// Which signal(s) to notify on (default both).
|
|
161
|
+
kinds GameRobloxKindEnum @default(both)
|
|
162
|
+
|
|
163
|
+
// Optional per-game routing override (else uses the guild's default Roblox channel/role).
|
|
164
|
+
channelId String?
|
|
165
|
+
pingRoleId String?
|
|
166
|
+
|
|
167
|
+
gameConfigId String
|
|
168
|
+
gameConfig GuildGameConfig? @relation(fields: [gameConfigId], references: [dbId], onUpdate: Cascade, onDelete: Cascade)
|
|
169
|
+
|
|
170
|
+
@@unique([gameConfigId, placeId])
|
|
141
171
|
}
|
|
@@ -190,6 +190,14 @@ enum GameDeliveryEnum {
|
|
|
190
190
|
weekly
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
+
// Roblox experience tracking (Noti Games API `roblox.*`). Which signal(s) a followed game pings on:
|
|
194
|
+
// `updates` = a `roblox.update` change signal, `events` = a `roblox.event`, `both` = either.
|
|
195
|
+
enum GameRobloxKindEnum {
|
|
196
|
+
updates
|
|
197
|
+
events
|
|
198
|
+
both
|
|
199
|
+
}
|
|
200
|
+
|
|
193
201
|
model AllEnumsModel {
|
|
194
202
|
dbId String @id @default(uuid())
|
|
195
203
|
|
|
@@ -213,4 +221,5 @@ model AllEnumsModel {
|
|
|
213
221
|
gameKinds GameKindEnum
|
|
214
222
|
gameFlags GameFlagEnum
|
|
215
223
|
gameDelivery GameDeliveryEnum
|
|
224
|
+
gameRobloxKinds GameRobloxKindEnum
|
|
216
225
|
}
|