brief-07-back/prisma/schema.prisma
2024-06-07 16:18:29 +02:00

118 lines
3.0 KiB
Plaintext

datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
model Crypto {
id String @id @default(uuid())
name String @unique
value Float
image String
quantity Float @default(1000)
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
UserHasCrypto UserHasCrypto[]
Trade Trade[]
Offer Offer[]
CryptoHistory CryptoHistory[]
}
model CryptoHistory {
id String @id @default(uuid())
id_crypto String
value Float
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
Crypto Crypto @relation(fields: [id_crypto], references: [id])
}
model Offer {
id String @id @default(uuid())
id_crypto String
id_user String
amount Float
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
Crypto Crypto @relation(fields: [id_crypto], references: [id])
User User @relation(fields: [id_user], references: [id])
}
model PromoCode {
id String @id @default(uuid())
name String
value Int
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
}
model Role {
id String @id @default(uuid())
name String
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
User User[]
}
model Trade {
id String @id @default(uuid())
id_giver String
id_receiver String
id_crypto String
amount_traded Float
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
Giver User @relation("Giver", fields: [id_giver], references: [id])
Receiver User @relation("Receiver", fields: [id_receiver], references: [id])
Crypto Crypto @relation(fields: [id_crypto], references: [id])
}
model User {
id String @id @default(uuid())
firstName String
lastName String
pseudo String
hash String
email String @unique
roleId String
isActive Boolean
city String
dollarAvailables Float
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
Role Role @relation(fields: [roleId], references: [id])
UserHasCrypto UserHasCrypto[]
TradeGiven Trade[] @relation("Giver")
TradeReceived Trade[] @relation("Receiver")
Offer Offer[]
}
model UserHasCrypto {
id String @id @default(uuid())
id_user String
id_crypto String
amount Int
createdAt DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
User User @relation(fields: [id_user], references: [id])
Crypto Crypto @relation(fields: [id_crypto], references: [id])
}