Add initial Prisma schema
Set up Prisma models for Crypto, CryptoHistory, Offer, PromoCode, Role, Trade, User, and UserHasCrypto. This includes defining fields, relationships, and default values for each model, and configuring PostgreSQL as the database provider.
This commit is contained in:
parent
cfcc998271
commit
d73aecd2ab
105
prisma/schema.prisma
Normal file
105
prisma/schema.prisma
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
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 @default(now()) @updatedAt
|
||||||
|
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 @default(now()) @updatedAt
|
||||||
|
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 @default(now()) @updatedAt
|
||||||
|
|
||||||
|
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 @default(now()) @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
model Role {
|
||||||
|
id String @id @default(uuid())
|
||||||
|
name String
|
||||||
|
created_at DateTime @default(now())
|
||||||
|
updated_at DateTime @default(now()) @updatedAt
|
||||||
|
|
||||||
|
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 @default(now()) @updatedAt
|
||||||
|
|
||||||
|
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
|
||||||
|
dollarAvailables Float
|
||||||
|
created_at DateTime @default(now())
|
||||||
|
updated_at DateTime @default(now()) @updatedAt
|
||||||
|
|
||||||
|
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 @default(now()) @updatedAt
|
||||||
|
User User @relation(fields: [id_user], references: [id])
|
||||||
|
Crypto Crypto @relation(fields: [id_crypto], references: [id])
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user