schema.prisma 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. // This is your Prisma schema file,
  2. // learn more about it in the docs: https://pris.ly/d/prisma-schema
  3. // Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
  4. // Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
  5. generator client {
  6. provider = "prisma-client-js"
  7. }
  8. datasource db {
  9. provider = "postgresql"
  10. url = env("DATABASE_URL")
  11. }
  12. enum ProgressStatus {
  13. cari_data
  14. dihubungi
  15. negosiasi
  16. follow_up
  17. mou
  18. onboarded
  19. tidak_berminat
  20. }
  21. model RevokedToken {
  22. id String @id @default(uuid())
  23. token String
  24. revoked_at DateTime @default(now())
  25. @@map("revoked_tokens")
  26. }
  27. model ActivityLog {
  28. id String @id @default(uuid())
  29. user_id String
  30. username String
  31. action String
  32. createdAt DateTime @default(now())
  33. updatedAt DateTime @updatedAt
  34. deletedAt DateTime?
  35. @@map("activity_logs")
  36. }
  37. model User {
  38. id String @id @default(uuid())
  39. username String
  40. email String
  41. password String
  42. firstname String
  43. lastname String
  44. role String
  45. createdAt DateTime @default(now())
  46. updatedAt DateTime @updatedAt
  47. deletedAt DateTime?
  48. @@map("users")
  49. }
  50. model Province {
  51. id String @id @default(uuid())
  52. name String @unique
  53. cities City[]
  54. hospitals Hospital[]
  55. user_areas UserArea[]
  56. createdAt DateTime @default(now())
  57. updatedAt DateTime @updatedAt
  58. deletedAt DateTime?
  59. @@map("provinces")
  60. }
  61. model City {
  62. id String @id @default(uuid())
  63. name String
  64. province_id String
  65. province Province @relation(fields: [province_id], references: [id])
  66. hospitals Hospital[]
  67. createdAt DateTime @default(now())
  68. updatedAt DateTime @updatedAt
  69. deletedAt DateTime?
  70. @@unique([name, province_id], name: "name_province_id")
  71. @@map("cities")
  72. }
  73. model Hospital {
  74. id String @id @default(uuid())
  75. name String
  76. hospital_code String?
  77. type String?
  78. ownership String?
  79. province_id String
  80. city_id String
  81. address String?
  82. simrs_type String?
  83. contact String?
  84. image String?
  85. progress_status ProgressStatus
  86. note String?
  87. created_by String
  88. latitude Float?
  89. longitude Float?
  90. gmaps_url String? @db.Text
  91. createdAt DateTime @default(now())
  92. updatedAt DateTime @updatedAt
  93. deletedAt DateTime?
  94. province Province @relation(fields: [province_id], references: [id])
  95. city City @relation(fields: [city_id], references: [id])
  96. vendor_histories VendorHistory[]
  97. executives_histories ExecutivesHistory[]
  98. status_histories StatusHistory[]
  99. @@map("hospitals")
  100. }
  101. model Vendor {
  102. id String @id @default(uuid())
  103. name String
  104. name_pt String?
  105. strengths String?
  106. weaknesses String?
  107. website String?
  108. created_by String
  109. createdAt DateTime @default(now())
  110. updatedAt DateTime @updatedAt
  111. deletedAt DateTime?
  112. vendor_histories VendorHistory[]
  113. @@map("vendors")
  114. }
  115. model UserArea {
  116. id String @id @default(uuid())
  117. user_id String
  118. province_id String
  119. province Province @relation(fields: [province_id], references: [id])
  120. createdAt DateTime @default(now())
  121. updatedAt DateTime @updatedAt
  122. deletedAt DateTime?
  123. @@map("user_areas")
  124. }
  125. model VendorHistory {
  126. id String @id @default(uuid())
  127. hospital_id String
  128. vendor_id String?
  129. vendor_impression String? @db.Text
  130. status String?
  131. contract_date DateTime?
  132. contract_expired_date DateTime?
  133. hospital Hospital @relation(fields: [hospital_id], references: [id])
  134. vendor Vendor? @relation(fields: [vendor_id], references: [id])
  135. createdAt DateTime @default(now())
  136. updatedAt DateTime @updatedAt
  137. deletedAt DateTime?
  138. @@map("vendor_histories")
  139. }
  140. model ExecutivesHistory {
  141. id String @id @default(uuid())
  142. hospital_id String
  143. executive_name String?
  144. contact String?
  145. status String?
  146. start_term DateTime?
  147. end_term DateTime?
  148. hospital Hospital @relation(fields: [hospital_id], references: [id])
  149. createdAt DateTime @default(now())
  150. updatedAt DateTime @updatedAt
  151. deletedAt DateTime?
  152. @@map("executives_histories")
  153. }
  154. model StatusHistory {
  155. id String @id @default(uuid())
  156. hospital_id String
  157. user_id String
  158. old_status ProgressStatus
  159. new_status ProgressStatus
  160. note String? @db.Text
  161. hospital Hospital @relation(fields: [hospital_id], references: [id])
  162. createdAt DateTime @default(now())
  163. updatedAt DateTime @updatedAt
  164. deletedAt DateTime?
  165. @@map("status_histories")
  166. }