90 lines
2.4 KiB
Plaintext
90 lines
2.4 KiB
Plaintext
generator client {
|
|
provider = "prisma-client"
|
|
output = "../src/generated/prisma"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
}
|
|
|
|
model Admin {
|
|
id String @id @default(cuid())
|
|
username String @unique
|
|
passwordHash String
|
|
createdAt DateTime @default(now())
|
|
}
|
|
|
|
model Addon {
|
|
id String @id @default(cuid())
|
|
name String
|
|
slug String @unique
|
|
summary String
|
|
description String @db.Text
|
|
iconUrl String?
|
|
category String @default("general")
|
|
published Boolean @default(false)
|
|
totalDownloads Int @default(0)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
releases Release[]
|
|
screenshots Screenshot[]
|
|
}
|
|
|
|
model Release {
|
|
id String @id @default(cuid())
|
|
addonId String
|
|
version String
|
|
changelog String @db.Text
|
|
downloadType String @default("local")
|
|
filePath String?
|
|
externalUrl String?
|
|
gameVersion String @default("")
|
|
downloadCount Int @default(0)
|
|
isLatest Boolean @default(false)
|
|
createdAt DateTime @default(now())
|
|
addon Addon @relation(fields: [addonId], references: [id], onDelete: Cascade)
|
|
|
|
@@index([addonId])
|
|
}
|
|
|
|
model Screenshot {
|
|
id String @id @default(cuid())
|
|
addonId String
|
|
imageUrl String
|
|
sortOrder Int @default(0)
|
|
addon Addon @relation(fields: [addonId], references: [id], onDelete: Cascade)
|
|
|
|
@@index([addonId])
|
|
}
|
|
|
|
model Software {
|
|
id String @id @default(cuid())
|
|
name String
|
|
slug String @unique
|
|
description String @default("")
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
versions SoftwareVersion[]
|
|
}
|
|
|
|
model SoftwareVersion {
|
|
id String @id @default(cuid())
|
|
softwareId String
|
|
version String
|
|
versionCode Int
|
|
changelog String @db.Text
|
|
downloadType String @default("local")
|
|
filePath String?
|
|
externalUrl String?
|
|
fileSize Int @default(0)
|
|
downloadCount Int @default(0)
|
|
isLatest Boolean @default(false)
|
|
forceUpdate Boolean @default(false)
|
|
minVersion String?
|
|
createdAt DateTime @default(now())
|
|
software Software @relation(fields: [softwareId], references: [id], onDelete: Cascade)
|
|
|
|
@@unique([softwareId, version])
|
|
@@index([softwareId])
|
|
}
|