schema.prisma 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. DOCTOR
  53. PATIENT
  54. }
  55. enum Gender {
  56. MALE
  57. FEMALE
  58. OTHER
  59. PREFER_NOT_TO_SAY
  60. }