Ajout d'une structure de tentatives de courses (Run)

This commit is contained in:
2024-12-08 22:37:57 +01:00
parent 23081e0220
commit 31c44eab6e
10 changed files with 216 additions and 64 deletions

View File

@ -16,14 +16,29 @@ model Player {
geolocations Geolocation[]
moneyUpdates MoneyUpdate[]
trips TrainTrip[]
runningGame Game?
runs PlayerRun[]
}
model Game {
id Int @id @default(autoincrement())
started Boolean @default(false)
currentRunner Player? @relation(fields: [currentRunnerId], references: [id])
currentRunnerId Int? @unique
id Int @id @default(autoincrement())
started Boolean @default(false)
currentRun PlayerRun? @relation("CurrentRun", fields: [currentRunId], references: [id])
currentRunId Int? @unique
runs PlayerRun[] @relation("GameRuns")
}
model PlayerRun {
id Int @id @default(autoincrement())
game Game @relation("GameRuns", fields: [gameId], references: [id])
runningGame Game? @relation("CurrentRun")
gameId Int
runner Player @relation(fields: [runnerId], references: [id])
runnerId Int
start DateTime @default(now()) @db.Timestamptz(3)
end DateTime? @db.Timestamptz(3)
moneyUpdate MoneyUpdate?
challengeActions ChallengeAction[]
trains TrainTrip[]
}
model Geolocation {
@ -59,6 +74,8 @@ model ChallengeAction {
end DateTime? @db.Timestamptz(3)
penaltyStart DateTime? @db.Timestamptz(3)
penaltyEnd DateTime? @db.Timestamptz(3)
run PlayerRun @relation(fields: [runId], references: [id])
runId Int
moneyUpdate MoneyUpdate?
}
@ -72,6 +89,8 @@ model TrainTrip {
departureTime DateTime @db.Timestamptz(3)
arrivalTime DateTime @db.Timestamptz(3)
infoJson Json
run PlayerRun @relation(fields: [runId], references: [id])
runId Int
moneyUpdate MoneyUpdate?
}
@ -85,11 +104,14 @@ model MoneyUpdate {
actionId Int? @unique
trip TrainTrip? @relation(fields: [tripId], references: [id])
tripId String? @unique
run PlayerRun? @relation(fields: [runId], references: [id])
runId Int? @unique
timestamp DateTime @default(now()) @db.Timestamptz(3)
}
enum MoneyUpdateType {
START
NEW_RUN
WIN_CHALLENGE
BUY_TRAIN
}