schema.prisma 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  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 UserKeycloak {
  51. id String @id @default(uuid())
  52. fullname String
  53. @@map("keycloak_users")
  54. }
  55. model Province {
  56. id String @id @default(uuid())
  57. name String @unique
  58. cities City[]
  59. hospitals Hospital[]
  60. user_areas UserArea[]
  61. createdAt DateTime @default(now())
  62. updatedAt DateTime @updatedAt
  63. deletedAt DateTime?
  64. @@map("provinces")
  65. }
  66. model City {
  67. id String @id @default(uuid())
  68. name String
  69. province_id String
  70. province Province @relation(fields: [province_id], references: [id])
  71. hospitals Hospital[]
  72. createdAt DateTime @default(now())
  73. updatedAt DateTime @updatedAt
  74. deletedAt DateTime?
  75. @@unique([name, province_id], name: "name_province_id")
  76. @@map("cities")
  77. }
  78. model Hospital {
  79. id String @id @default(uuid())
  80. name String
  81. hospital_code String?
  82. type String?
  83. ownership String?
  84. province_id String
  85. city_id String
  86. address String?
  87. // simrs_type String?
  88. contact String?
  89. image String?
  90. progress_status ProgressStatus
  91. note String?
  92. created_by String
  93. latitude Float?
  94. longitude Float?
  95. gmaps_url String? @db.Text
  96. createdAt DateTime @default(now())
  97. updatedAt DateTime @updatedAt
  98. deletedAt DateTime?
  99. province Province @relation(fields: [province_id], references: [id])
  100. city City @relation(fields: [city_id], references: [id])
  101. vendor_experiences VendorExperience[]
  102. executives_histories ExecutivesHistory[]
  103. status_histories StatusHistory[]
  104. @@map("hospitals")
  105. }
  106. model Vendor {
  107. id String @id @default(uuid())
  108. name String
  109. name_pt String?
  110. strengths String?
  111. weaknesses String?
  112. website String?
  113. created_by String
  114. createdAt DateTime @default(now())
  115. updatedAt DateTime @updatedAt
  116. deletedAt DateTime?
  117. vendor_experiences VendorExperience[]
  118. @@map("vendors")
  119. }
  120. model UserArea {
  121. id String @id @default(uuid())
  122. user_id String
  123. province_id String
  124. province Province @relation(fields: [province_id], references: [id])
  125. createdAt DateTime @default(now())
  126. updatedAt DateTime @updatedAt
  127. deletedAt DateTime?
  128. @@map("user_areas")
  129. }
  130. // model VendorHistory {
  131. // id String @id @default(uuid())
  132. // hospital_id String
  133. // vendor_id String?
  134. // vendor_impression String? @db.Text
  135. // status String?
  136. // contract_date DateTime?
  137. // contract_expired_date DateTime?
  138. // hospital Hospital @relation(fields: [hospital_id], references: [id])
  139. // vendor Vendor? @relation(fields: [vendor_id], references: [id])
  140. // createdAt DateTime @default(now())
  141. // updatedAt DateTime @updatedAt
  142. // deletedAt DateTime?
  143. // @@map("vendor_histories")
  144. // }
  145. model VendorExperience {
  146. id String @id @default(uuid())
  147. hospital_id String
  148. vendor_id String?
  149. status String?
  150. contract_start_date DateTime?
  151. contract_expired_date DateTime?
  152. contract_value_min BigInt?
  153. contract_value_max BigInt?
  154. positive_notes String? @db.Text
  155. negative_notes String? @db.Text
  156. simrs_type String
  157. hospital Hospital @relation(fields: [hospital_id], references: [id])
  158. vendor Vendor? @relation(fields: [vendor_id], references: [id])
  159. createdAt DateTime @default(now())
  160. updatedAt DateTime @updatedAt
  161. deletedAt DateTime?
  162. @@map("vendor_experiences")
  163. }
  164. model ExecutivesHistory {
  165. id String @id @default(uuid())
  166. hospital_id String
  167. executive_name String?
  168. contact String?
  169. status String?
  170. start_term DateTime?
  171. end_term DateTime?
  172. hospital Hospital @relation(fields: [hospital_id], references: [id])
  173. createdAt DateTime @default(now())
  174. updatedAt DateTime @updatedAt
  175. deletedAt DateTime?
  176. @@map("executives_histories")
  177. }
  178. model StatusHistory {
  179. id String @id @default(uuid())
  180. hospital_id String
  181. user_id String
  182. old_status ProgressStatus
  183. new_status ProgressStatus
  184. note String? @db.Text
  185. hospital Hospital @relation(fields: [hospital_id], references: [id])
  186. createdAt DateTime @default(now())
  187. updatedAt DateTime @updatedAt
  188. deletedAt DateTime?
  189. @@map("status_histories")
  190. }