// 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 }