mirror of
https://github.com/Drop-OSS/drop.git
synced 2025-11-16 17:51:17 +10:00
139 lines
3.9 KiB
Plaintext
139 lines
3.9 KiB
Plaintext
model Version {
|
|
versionId String @id @unique @default(uuid())
|
|
|
|
versionPath String
|
|
|
|
versionName String
|
|
created DateTime @default(now())
|
|
|
|
gameId String?
|
|
game Game? @relation(fields: [gameId], references: [id], map: "game_link", onDelete: Cascade, onUpdate: Cascade)
|
|
gameVersion GameVersion?
|
|
|
|
redistId String?
|
|
redist Redist? @relation(fields: [redistId], references: [id], map: "redist_link", onDelete: Cascade, onUpdate: Cascade)
|
|
redistVersion RedistVersion?
|
|
|
|
addonId String?
|
|
addon Addon? @relation(fields: [addonId], references: [id], map: "addon_link", onDelete: Cascade, onUpdate: Cascade)
|
|
addonVersion AddonVersion?
|
|
|
|
modId String?
|
|
mod Mod? @relation(fields: [modId], references: [id], map: "mod_link", onDelete: Cascade, onUpdate: Cascade)
|
|
modVersion ModVersion?
|
|
|
|
platform Platform
|
|
dropletManifest Json // Results from droplet
|
|
}
|
|
|
|
model GameVersion {
|
|
versionId String @id
|
|
version Version @relation(fields: [versionId], references: [versionId], onDelete: Cascade, onUpdate: Cascade)
|
|
|
|
redistDeps RedistVersion[]
|
|
|
|
launches GameVersionLaunch[]
|
|
|
|
setup String @default("") // Command to setup game (dependencies and such)
|
|
setupArgs String @default("")
|
|
onlySetup Boolean @default(false)
|
|
|
|
umuIdOverride String?
|
|
|
|
versionIndex Int
|
|
delta Boolean @default(false)
|
|
hidden Boolean @default(false)
|
|
}
|
|
|
|
model GameVersionLaunch {
|
|
launchId String @id @default(uuid())
|
|
versionId String
|
|
|
|
gameVersion GameVersion @relation(fields: [versionId], references: [versionId], onDelete: Cascade, onUpdate: Cascade)
|
|
|
|
name String
|
|
description String
|
|
|
|
launchCommand String
|
|
launchArgs String @default("")
|
|
}
|
|
|
|
model AddonVersion {
|
|
versionId String @id
|
|
version Version @relation(fields: [versionId], references: [versionId], onDelete: Cascade, onUpdate: Cascade)
|
|
|
|
redistDeps RedistVersion[]
|
|
}
|
|
|
|
model RedistVersion {
|
|
versionId String @id
|
|
version Version @relation(fields: [versionId], references: [versionId], onDelete: Cascade, onUpdate: Cascade)
|
|
|
|
gameDependees GameVersion[]
|
|
addonDependees AddonVersion[]
|
|
}
|
|
|
|
model ModVersion {
|
|
versionId String @id
|
|
version Version @relation(fields: [versionId], references: [versionId], onDelete: Cascade, onUpdate: Cascade)
|
|
|
|
dependencies String[]
|
|
}
|
|
|
|
// A save slot for a game
|
|
model SaveSlot {
|
|
gameId String
|
|
game Game @relation(fields: [gameId], references: [id], onDelete: Cascade)
|
|
userId String
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
index Int
|
|
|
|
createdAt DateTime @default(now())
|
|
playtime Float @default(0) // hours
|
|
|
|
lastUsedClientId String?
|
|
lastUsedClient Client? @relation(fields: [lastUsedClientId], references: [id])
|
|
|
|
historyObjectIds String[] // list of objects
|
|
historyChecksums String[] // list of hashes
|
|
|
|
@@id([gameId, userId, index], name: "id")
|
|
}
|
|
|
|
model Screenshot {
|
|
id String @id @default(uuid())
|
|
|
|
gameId String
|
|
game Game @relation(fields: [gameId], references: [id], onDelete: Cascade)
|
|
userId String
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
|
|
objectId String
|
|
private Boolean // if other users can see
|
|
|
|
createdAt DateTime @default(now()) @db.Timestamptz(0)
|
|
|
|
@@index([gameId, userId])
|
|
@@index([userId])
|
|
}
|
|
|
|
model Playtime {
|
|
gameId String
|
|
game Game @relation(fields: [gameId], references: [id], onDelete: Cascade)
|
|
userId String
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
|
|
seconds Int // seconds user has spent playing the game
|
|
|
|
updatedAt DateTime @updatedAt @db.Timestamptz(6)
|
|
createdAt DateTime @default(now()) @db.Timestamptz(6)
|
|
|
|
@@id([gameId, userId])
|
|
@@index([userId])
|
|
}
|
|
|
|
model ObjectHash {
|
|
id String @id
|
|
hash String
|
|
}
|