feat: add cloudsave configuration w/ ludusavi search

This commit is contained in:
DecDuck
2025-06-11 22:14:21 +10:00
parent 5b27430ece
commit 95d6089453
20 changed files with 482 additions and 146 deletions

View File

@ -0,0 +1,36 @@
enum CloudSaveType {
Ludusavi
LuaScript
}
model CloudSaveConfiguration {
gameId String @id
game Game @relation(fields: [gameId], references: [id])
type CloudSaveType
ludusaviEntryName String?
ludusaviEntry LudusaviEntry? @relation(fields: [ludusaviEntryName], references: [name])
scriptContent String?
}
model LudusaviEntry {
name String @id
steamId String?
entries LudusaviPlatformEntry[]
configurations CloudSaveConfiguration[]
}
model LudusaviPlatformEntry {
ludusaviEntryName String
ludusaviEntry LudusaviEntry @relation(fields: [ludusaviEntryName], references: [name])
platform Platform
files String[]
registry String[]
@@id([ludusaviEntryName, platform])
}

View File

@ -46,6 +46,8 @@ model Game {
developers Company[] @relation(name: "developers")
publishers Company[] @relation(name: "publishers")
cloudSaveConfiguration CloudSaveConfiguration?
@@unique([metadataSource, metadataId], name: "metadataKey")
@@unique([libraryId, libraryPath], name: "libraryKey")
}

View File

@ -1,18 +0,0 @@
model LudusaviEntry {
name String @id
steamId String?
entries LudusaviPlatformEntry[]
}
model LudusaviPlatformEntry {
ludusaviEntryName String
ludusaviEntry LudusaviEntry @relation(fields: [ludusaviEntryName], references: [name])
platform Platform
files String[]
registry String[]
@@id([ludusaviEntryName, platform])
}