neptune-back/prisma/schema.prisma
Mathis 55ec13c0a7
Fix offer retrieval method and add GDPR acknowledgment
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.
2024-11-24 23:49:59 +01:00

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])
}