schema.prisma 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. generator client {
  2. provider = "prisma-client-js"
  3. }
  4. datasource db {
  5. provider = "postgresql"
  6. url = env("DATABASE_URL")
  7. }
  8. model User {
  9. id String @id @default(cuid())
  10. name String
  11. lastname String
  12. username String @unique
  13. email String @unique
  14. password String
  15. role Role @default(PATIENT)
  16. profileImage String?
  17. phone String?
  18. dateOfBirth DateTime?
  19. gender Gender?
  20. address String?
  21. emergencyContact String?
  22. medicalHistory String?
  23. allergies String?
  24. currentMedications String?
  25. createdAt DateTime @default(now())
  26. updatedAt DateTime @updatedAt
  27. // Relaciones
  28. records Record[]
  29. assignedPatients PatientAssignment[] @relation("DoctorPatients")
  30. assignedDoctor PatientAssignment[] @relation("PatientDoctor")
  31. }
  32. model PatientAssignment {
  33. id String @id @default(cuid())
  34. doctorId String
  35. patientId String
  36. assignedAt DateTime @default(now())
  37. notes String?
  38. isActive Boolean @default(true)
  39. doctor User @relation("DoctorPatients", fields: [doctorId], references: [id], onDelete: Cascade)
  40. patient User @relation("PatientDoctor", fields: [patientId], references: [id], onDelete: Cascade)
  41. @@unique([doctorId, patientId])
  42. }
  43. model Record {
  44. id String @id @default(cuid())
  45. userId String
  46. content String
  47. messages Json?
  48. createdAt DateTime @default(now())
  49. user User @relation(fields: [userId], references: [id], onDelete: Cascade)
  50. }
  51. enum Role {
  52. ADMIN
  53. DOCTOR
  54. PATIENT
  55. }
  56. enum Gender {
  57. MALE
  58. FEMALE
  59. OTHER
  60. PREFER_NOT_TO_SAY
  61. }