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? }