1
0
mirror of synced 2024-11-14 10:17:37 +01:00
Bayshore/prisma/schema.prisma
2023-03-30 13:15:45 +07:00

464 lines
16 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("POSTGRES_URL")
}
model User {
id Int @id @default(autoincrement())
chipId String @unique
accessCode String
cars Car[]
carOrder Int[]
items UserItem[]
tutorials Boolean[]
userBanned Boolean @default(false)
bookmarks Int[]
ScratchSheet ScratchSheet[]
currentSheet Int @default(1)
lastScratched Int @default(0) // Timestamp
}
model ScratchSheet {
id Int @id @default(autoincrement())
User User @relation(fields: [userId], references: [id])
userId Int
sheetNo Int // Player's sheet number (i.e. first sheet)
squares ScratchSquare[]
}
model ScratchSquare {
id Int @id @default(autoincrement())
Sheet ScratchSheet @relation(fields: [sheetId], references: [id])
sheetId Int
category Int
itemId Int
earned Boolean
}
model UserItem {
userItemId Int @id @default(autoincrement())
category Int
itemId Int
User User @relation(fields: [userId], references: [id])
userId Int
type Int @default(0)
earnedAt Int @default(0)
}
model Car {
user User @relation(fields: [userId], references: [id])
userId Int
// This is the Car object itself
carId Int @id @default(autoincrement())
name String
manufacturer Int
model Int
visualModel Int
customColor Int @default(0)
defaultColor Int
wheel Int @default(0)
wheelColor Int @default(0)
aero Int @default(0)
bonnet Int @default(0)
wing Int @default(0)
mirror Int @default(0)
neon Int @default(0)
trunk Int @default(0)
plate Int @default(0)
plateColor Int @default(0)
plateNumber Int @default(0)
tunePower Int @default(0)
tuneHandling Int @default(0)
title String @default("New Car")
level Int @default(0)
windowSticker Boolean @default(false)
windowStickerString String @default("")
windowStickerFont Int @default(0)
windowDecoration Int @default(0)
rivalMarker Int @default(0)
lastPlayedAt Int @default(0)
aura Int @default(0)
regionId Int @default(18)
country String @default("JPN")
// This is more data about the car
tuningPoints Int @default(0)
odometer Int @default(0)
playCount Int @default(0)
earnedCustomColor Boolean @default(false)
carSettingsDbId Int @unique
settings CarSettings @relation(fields: [carSettingsDbId], references: [dbId])
auraMotif Int @default(0)
vsPlayCount Int @default(0)
vsBurstCount Int @default(0)
vsStarCount Int @default(0)
vsStarCountMax Int @default(0)
vsCoolOrWild Int @default(0)
vsSmoothOrRough Int @default(0)
vsTripleStarMedals Int @default(0)
vsDoubleStarMedals Int @default(0)
vsSingleStarMedals Int @default(0)
vsPlainMedals Int @default(0)
ghostLevel Int @default(1)
rgPlayCount Int @default(0)
rgWinCount Int @default(0)
rgTrophy Int @default(0)
rgScore Int @default(0)
rgStamp Int @default(1)
rgAcquireAllCrowns Boolean @default(false)
rgRegionMapScore Int[]
stampSheetCount Int @default(0)
stampSheet Int[]
dressupLevel Int @default(0)
dressupPoint Int @default(0)
stPlayCount Int @default(0)
stClearBits Int @default(0)
stClearDivCount Int @default(0)
stClearCount Int @default(0)
stLoseBits BigInt @default(0)
stConsecutiveWins Int @default(0)
stConsecutiveWinsMax Int @default(0)
stCompleted100Episodes Boolean @default(false)
lastPlayedPlaceId Int?
lastPlayedPlace PlaceList? @relation(fields: [lastPlayedPlaceId], references: [id])
items CarItem[]
carGTWingDbId Int @unique
gtWing CarGTWing @relation(fields: [carGTWingDbId], references: [dbId])
carStateDbId Int @unique
state CarState @relation(fields: [carStateDbId], references: [dbId])
TimeAttackRecord TimeAttackRecord[]
CarCrown CarCrown[]
GhostTrail GhostTrail[]
GhostBattleRecord GhostBattleRecord[]
CarPathandTuning CarPathandTuning[]
OCMGhostBattleRecord OCMGhostBattleRecord[]
OCMTally OCMTally[]
OCMTop1Ghost OCMTop1Ghost[]
OCMGhostTrail OCMGhostTrail[]
OCMPlayRecord OCMPlayRecord[]
GhostRegisteredFromTerminal GhostRegisteredFromTerminal[]
CarStampTarget CarStampTarget[]
CarChallenger CarChallenger[]
}
model CarGTWing {
dbId Int @id @default(autoincrement())
car Car?
pillar Int @default(0)
pillarMaterial Int @default(0)
mainWing Int @default(0)
mainWingColor Int @default(0)
wingTip Int @default(0)
material Int @default(0)
}
model CarItem {
dbId Int @id @default(autoincrement())
Car Car @relation(fields: [carId], references: [carId])
carId Int
category Int
itemId Int
amount Int
}
model CarSettings {
dbId Int @id @default(autoincrement())
car Car?
view Boolean @default(true)
transmission Boolean @default(false)
retire Boolean @default(false)
meter Int @default(0)
navigationMap Boolean @default(true)
volume Int @default(2)
bgm Int @default(0)
nameplate Int @default(0)
nameplateColor Int @default(0)
terminalBackground Int @default(0)
}
model CarState {
dbId Int @id @default(autoincrement())
car Car?
hasOpponentGhost Boolean @default(false)
eventJoined Boolean @default(false)
transferred Boolean @default(false)
toBeDeleted Boolean @default(false)
competitionState Int @default(0)
}
model CarPathandTuning {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
area Int @default(0)
ramp Int @default(0)
path Int @default(0)
tunePower Int @default(17)
tuneHandling Int @default(17)
lastPlayedAt Int @default(0)
}
model CarCrown {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
area Int @unique
ramp Int
path Int
playedAt Int @default(0)
tunePower Int
tuneHandling Int
}
model TimeAttackRecord {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
model Int // Car model, literally just the `model` field from Car
time Int
course Int
isMorning Boolean
section1Time Int @map("section1Time")
section2Time Int @map("section2Time")
section3Time Int @map("section3Time")
section4Time Int @map("section4Time")
section5Time Int? @map("section5Time")
section6Time Int? @map("section6Time")
section7Time Int? @map("section7Time")
tunePower Int @default(0) // Car Power
tuneHandling Int @default(0) // Car Handling
}
model GhostTrail {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
area Int
ramp Int
path Int
trail Bytes
time Int?
driveData Bytes? @db.ByteA
driveDMergeSerial Int?
trendBinaryByUser Bytes? @db.ByteA
byUserMergeSerial Int?
trendBinaryByArea Bytes? @db.ByteA
byAreaMergeSerial Int?
trendBinaryByCar Bytes? @db.ByteA
byCarMergeSerial Int?
playedAt Int @default(0)
tunePower Int @default(0)
tuneHandling Int @default(0)
crownBattle Boolean @default(false)
}
model GhostBattleRecord {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
tunePower Int @default(0)
tuneHandling Int @default(0)
opponent1CarId Int
opponent1Result Int
opponent1TunePower Int
opponent1TuneHandling Int
opponent2CarId Int?
opponent2Result Int?
opponent2TunePower Int?
opponent2TuneHandling Int?
opponent3CarId Int?
opponent3Result Int?
opponent3TunePower Int?
opponent3TuneHandling Int?
area Int @default(0)
playedAt Int @default(0)
playedShopName String @default("Bayshore")
}
model OCMEvent {
dbId Int @id @default(autoincrement())
competitionId Int
qualifyingPeriodStartAt Int
qualifyingPeriodCloseAt Int
competitionStartAt Int
competitionCloseAt Int
competitionEndAt Int
lengthOfPeriod Int
lengthOfInterval Int
area Int @default(0)
minigamePatternId Int @default(0)
OCMPeriod OCMPeriod[]
}
model OCMPlayRecord {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
competitionId Int
periodId Int
brakingPoint Int?
playedAt Int @default(0)
}
model OCMTop1Ghost {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
competitionId Int
periodId Int
result Int
tunePower Int @default(0)
tuneHandling Int @default(0)
}
model OCMTop1GhostTrail {
dbId Int @id @default(autoincrement())
carId Int
area Int
ramp Int
path Int
trail Bytes
competitionId Int
periodId Int
playedAt Int @default(0)
tunePower Int @default(0)
tuneHandling Int @default(0)
ocmMainDraw Boolean @default(false)
}
model OCMTally {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
competitionId Int
periodId Int
result Int
tunePower Int @default(0)
tuneHandling Int @default(0)
}
model OCMGhostBattleRecord {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
tunePower Int @default(0)
tuneHandling Int @default(0)
competitionId Int
periodId Int
result Int
area Int @default(0)
playedAt Int @default(0)
playedShopName String @default("Bayshore")
ocmMainDraw Boolean @default(false)
}
model OCMGhostTrail {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
area Int
ramp Int
path Int
trail Bytes
competitionId Int
periodId Int
playedAt Int @default(0)
tunePower Int @default(0)
tuneHandling Int @default(0)
ocmMainDraw Boolean @default(false)
}
model OCMPeriod {
dbId Int @id @default(autoincrement())
OCMEvent OCMEvent @relation(fields: [competitionDbId], references: [dbId])
competitionDbId Int
competitionId Int
periodId Int
startAt Int
closeAt Int
}
model GhostRegisteredFromTerminal {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
competitionId Int?
opponentCarId Int
}
model CarChallenger {
id Int @id @default(autoincrement())
challengerCar Car @relation(fields: [challengerCarId], references: [carId])
carId Int
challengerCarId Int
stamp Int
result Int
area Int
lastPlayedAt Int @default(0)
}
model CarStampTarget {
id Int @id @default(autoincrement())
stampTargetCar Car @relation(fields: [stampTargetCarId], references: [carId])
carId Int
stampTargetCarId Int
returnCount Int
locked Boolean
recommended Boolean
}
model PlaceList {
id Int @id @default(autoincrement())
car Car[]
placeId String
regionId Int
shopName String
country String
}
model FileList {
fileId Int @id @default(autoincrement())
fileType Int
fileSize Int
urlFileName String
sha1sum String
notBefore Int
notAfter Int
filePath String
}
model CarCrownDetect {
id Int @id @default(autoincrement())
carId Int
status String @default("")
area Int?
ramp Int?
path Int?
trail Bytes?
playedAt Int?
tunePower Int?
tuneHandling Int?
opponentCarId Int?
}