100 lines
1.7 KiB
Text
100 lines
1.7 KiB
Text
datasource db {
|
|
provider = "sqlite"
|
|
url = "file:dev.db"
|
|
}
|
|
|
|
generator client {
|
|
provider = "cargo prisma"
|
|
output = "../../crates/prisma/src/prisma.rs"
|
|
}
|
|
|
|
// todo: replace all `path` fields with a model with a checksum n shit
|
|
// todo: replace all `String` fields with an enum if applicable
|
|
|
|
// represents a single minecraft instance
|
|
model Instance {
|
|
id Int @id @default(autoincrement())
|
|
name String?
|
|
path String?
|
|
hidden Boolean?
|
|
|
|
time_played DateTime
|
|
last_played DateTime
|
|
date_created DateTime @default(now())
|
|
|
|
mods Mod[]
|
|
|
|
java_instance JavaInstance @relation(fields: [java_instance_id], references: [id])
|
|
java_instance_id Int
|
|
|
|
@@map("instance")
|
|
}
|
|
|
|
model JavaInstance {
|
|
id Int @id @default(autoincrement())
|
|
name String?
|
|
path String?
|
|
version String?
|
|
arch String?
|
|
|
|
instance Instance[]
|
|
|
|
@@map("java_instance")
|
|
}
|
|
|
|
model Asset {
|
|
id Int @id @default(autoincrement())
|
|
|
|
name String?
|
|
path String?
|
|
enabled Boolean @default(true)
|
|
hidden Boolean?
|
|
date_added DateTime?
|
|
|
|
/// @local
|
|
instance_id Int?
|
|
instance Instance? @relation(fields: [instance_id], references: [id], onDelete: SetNull)
|
|
|
|
@@map("asset")
|
|
}
|
|
|
|
model MinecraftManifest {
|
|
id String @id
|
|
assets String
|
|
compliance_level Int
|
|
downloads Downloads
|
|
|
|
@@map("minecraft_manifest")
|
|
}
|
|
|
|
model Downloads {
|
|
client Client
|
|
|
|
@@map("downloads")
|
|
}
|
|
|
|
model Client {
|
|
sha1 String @unique
|
|
size Int
|
|
url String
|
|
|
|
@@map("client")
|
|
}
|
|
|
|
model JavaVersion {
|
|
component String
|
|
major_version MajorVersion @default(VERSION_1_21)
|
|
}
|
|
|
|
enum MajorVersion {
|
|
VERSION_1_21
|
|
VERSION_1_8
|
|
}
|
|
|
|
model Library {
|
|
downloads LibraryDownloads
|
|
name String
|
|
rules Rule[]
|
|
extract Extract?
|
|
natives Natives?
|
|
}
|