71 lines
1.8 KiB
Plaintext
71 lines
1.8 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "sqlite"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model User {
|
|
id Int @id @default(autoincrement())
|
|
username String @unique
|
|
passwordHash String
|
|
balance Int @default(0)
|
|
role String @default("user")
|
|
createdAt DateTime @default(now())
|
|
inventory InventoryItem[]
|
|
transactions Transaction[]
|
|
}
|
|
|
|
model Case {
|
|
id Int @id @default(autoincrement())
|
|
name String
|
|
imageUrl String @default("")
|
|
price Int
|
|
active Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
items CaseItem[]
|
|
}
|
|
|
|
model Item {
|
|
id Int @id @default(autoincrement())
|
|
name String
|
|
imageUrl String @default("")
|
|
rarity String
|
|
marketValue Int
|
|
createdAt DateTime @default(now())
|
|
cases CaseItem[]
|
|
inventory InventoryItem[]
|
|
}
|
|
|
|
model CaseItem {
|
|
id Int @id @default(autoincrement())
|
|
caseId Int
|
|
itemId Int
|
|
dropRate Float
|
|
case Case @relation(fields: [caseId], references: [id], onDelete: Cascade)
|
|
item Item @relation(fields: [itemId], references: [id], onDelete: Cascade)
|
|
|
|
@@unique([caseId, itemId])
|
|
}
|
|
|
|
model InventoryItem {
|
|
id Int @id @default(autoincrement())
|
|
userId Int
|
|
itemId Int
|
|
obtainedAt DateTime @default(now())
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
item Item @relation(fields: [itemId], references: [id], onDelete: Cascade)
|
|
}
|
|
|
|
model Transaction {
|
|
id Int @id @default(autoincrement())
|
|
userId Int
|
|
type String
|
|
amount Int
|
|
meta String @default("{}")
|
|
createdAt DateTime @default(now())
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
}
|