Initialisation de la base données côté serveur
This commit is contained in:
80
server/prisma/schema.prisma
Normal file
80
server/prisma/schema.prisma
Normal file
@ -0,0 +1,80 @@
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
model User {
|
||||
id Int @id @default(autoincrement())
|
||||
name String @unique
|
||||
money Int @default(0)
|
||||
currentRunner Boolean @default(false)
|
||||
actions ChallengeAction[]
|
||||
geolocations Geolocation[]
|
||||
moneyUpdates MoneyUpdate[]
|
||||
trips TrainTrip[]
|
||||
}
|
||||
|
||||
model Geolocation {
|
||||
id Int @id @default(autoincrement())
|
||||
userId Int
|
||||
longitude Float
|
||||
latitude Float
|
||||
timestamp DateTime
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
}
|
||||
|
||||
model Challenge {
|
||||
id Int @id @default(autoincrement())
|
||||
title String @unique
|
||||
description String
|
||||
reward Int
|
||||
action ChallengeAction?
|
||||
}
|
||||
|
||||
model ChallengeAction {
|
||||
id Int @id @default(autoincrement())
|
||||
userId Int
|
||||
challengeId Int @unique
|
||||
active Boolean @default(false)
|
||||
success Boolean @default(false)
|
||||
challenge Challenge @relation(fields: [challengeId], references: [id])
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
moneyUpdate MoneyUpdate?
|
||||
}
|
||||
|
||||
model TrainTrip {
|
||||
id String @id
|
||||
userId Int
|
||||
distance Float
|
||||
from String
|
||||
to String
|
||||
departureTime DateTime
|
||||
arrivalTime DateTime
|
||||
infoJson Json
|
||||
geometry String
|
||||
moneyUpdate MoneyUpdate?
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
}
|
||||
|
||||
model MoneyUpdate {
|
||||
id Int @id @default(autoincrement())
|
||||
userId Int
|
||||
before Int
|
||||
after Int
|
||||
reason MoneyUpdateType
|
||||
actionId Int? @unique
|
||||
tripId String? @unique
|
||||
action ChallengeAction? @relation(fields: [actionId], references: [id])
|
||||
trip TrainTrip? @relation(fields: [tripId], references: [id])
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
}
|
||||
|
||||
enum MoneyUpdateType {
|
||||
START
|
||||
WIN_CHALLENGE
|
||||
BUY_TRAIN
|
||||
}
|
Reference in New Issue
Block a user