Files
meeting-app/prisma/schema.prisma
T
Lucàs 5cc56e46ec Edit Crud, add loaders during authentication
Took 2 hours 49 minutes
2023-03-26 17:02:24 +02:00

89 lines
2.1 KiB
Plaintext

// Connexion
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
// Models
model User {
id String @id @default(auto()) @map("_id") @db.ObjectId
email String @unique
password String
firstName String?
lastName String?
bio String?
location String?
images String[]
birthdate DateTime?
gender Gender @default(UNKNOWN)
role Role @default(USER)
createdAt DateTime @default(now())
// Liste des chats de l'utilisateur
ChatID String[] @db.ObjectId
Chat Chat[] @relation(fields: [ChatID], references: [id])
// Liste des passions de l'utilisateur
PassionID String[] @db.ObjectId
Passion Passion[] @relation(fields: [PassionID], references: [id])
// Les messages envoyés
Message Message[]
// Les personnes que l'utilisateur aime
UserLikesID String[] @db.ObjectId
UserLikes User[] @relation("Likes", fields: [UserLikesID], references: [id])
// Les personnes qui aiment l'utilisateur
OtherUserLikesID String[] @db.ObjectId
OtherUserLikes User[] @relation("Likes", fields: [OtherUserLikesID], references: [id])
}
model Passion {
id String @id @default(auto()) @map("_id") @db.ObjectId
name String
// Les utilisateurs qui on en commun cette passion
UserId String[] @db.ObjectId
User User[] @relation(fields: [UserId], references: [id])
}
model Chat {
id String @id @default(auto()) @map("_id") @db.ObjectId
messages Message[]
// Les utilisateurs qui ont un chat en commun
User User[] @relation(fields: [UserId], references: [id])
UserId String[] @db.ObjectId
}
model Message {
id String @id @default(auto()) @map("_id") @db.ObjectId
message String
createdAt DateTime @default(now())
// L'utilisateur qui a envoyé le message
UserID String @db.ObjectId
User User @relation(fields: [UserID], references: [id])
// Le chat où ce trouve le message
ChatID String? @db.ObjectId
Chat Chat? @relation(fields: [ChatID], references: [id])
}
enum Gender {
MALE
FEMALE
OTHER
UNKNOWN
}
enum Role {
USER
ADMIN
}