Return the result from `getOffersById` method to fix route handling. Add `id` field in offers selection query and introduce `gdpr_acknowledgement` to the user model and mock data for GDPR compliance.
108 lines
2.9 KiB
Plaintext
108 lines
2.9 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 @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
|
|
|
|
gdpr_acknowledgement DateTime @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 @default(now()) @updatedAt
|
|
User User @relation(fields: [id_user], references: [id])
|
|
Crypto Crypto @relation(fields: [id_crypto], references: [id])
|
|
}
|