Piotoru

prisma schema

Jan 22nd, 2023
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.25 KB | None | 0 0
  1. generator client {
  2. provider = "prisma-client-js"
  3. }
  4.  
  5. datasource db {
  6. provider = "postgresql"
  7. url = env("DATABASE_URL")
  8. }
  9.  
  10. model Users {
  11. id String @default(uuid()) @id
  12. username String? @db.VarChar(20)
  13. pseudonym String? @db.VarChar(30) @unique
  14. email String @db.VarChar(50) @unique
  15. password String
  16. description String? @db.VarChar(300)
  17. profilePhoto String? @db.VarChar(200) @unique
  18. createAt DateTime @default(now())
  19. updateAt DateTime @updatedAt
  20. plan Plan @default(FREE)
  21. profile Files? @relation("profile")
  22. ownerFile Files? @relation("ownerFile")
  23. friend Friends[]
  24. userInFriend Friends[] @relation("usersFriends")
  25. owner Groups? @relation("owner")
  26. moderator Groups[] @relation("moderator")
  27. user Groups[]
  28. }
  29.  
  30. model Groups {
  31. groupId String @default(uuid()) @id
  32. name String @db.VarChar(20) @unique
  33. description String @db.VarChar(300)
  34. adminId String @db.VarChar(36) @unique
  35. moderatorsId String? @db.VarChar(36)
  36. usersId String? @db.VarChar(36)
  37. logoUrl String? @db.VarChar(36)
  38. createAt DateTime @default(now())
  39. updateAt DateTime @updatedAt
  40. owner Users @relation("owner", fields: [adminId], references: [id])
  41. moderator Users? @relation("moderator", fields: [moderatorsId], references: [id])
  42. user Users? @relation(fields: [usersId], references: [id])
  43. }
  44.  
  45. model Friends {
  46. id String @default(uuid()) @id
  47. usernameId String @db.VarChar(80)
  48. friendId String @db.VarChar(80)
  49. createAt DateTime @default(now())
  50. updateAt DateTime @updatedAt
  51. friend Users @relation(fields: [friendId], references: [id])
  52. usersFriends Users @relation("usersFriends", fields: [usernameId], references: [id])
  53. }
  54.  
  55. model Files {
  56. id String @default(uuid()) @id
  57. name String @db.VarChar(120) @unique
  58. ownerFile String @db.VarChar(80) @unique
  59. createdAt DateTime @default(now())
  60. updatedAt DateTime @updatedAt
  61. profileType Boolean @default(false)
  62. profile Users @relation("profile", fields: [id], references: [profilePhoto])
  63. owner Users @relation("ownerFile", fields: [ownerFile], references: [id])
  64. }
  65.  
  66. model all_auth_recipe_users {
  67. user_id String @db.Char(36) @id
  68. recipe_id String @db.VarChar(128)
  69. time_joined BigInt
  70. userid_mapping userid_mapping?
  71.  
  72. @@index([time_joined(sort: Desc), user_id(sort: Desc)], map: "all_auth_recipe_users_pagination_index")
  73. }
  74.  
  75. model emailpassword_pswd_reset_tokens {
  76. user_id String @db.Char(36)
  77. token String @unique @db.VarChar(128)
  78. token_expiry BigInt
  79. emailpassword_users emailpassword_users @relation(fields: [user_id], references: [user_id], onDelete: Cascade)
  80.  
  81. @@id([user_id, token])
  82. @@index([token_expiry], map: "emailpassword_password_reset_token_expiry_index")
  83. }
  84.  
  85. model emailpassword_users {
  86. user_id String @db.Char(36) @id
  87. email String @db.VarChar(256) @unique
  88. password_hash String @db.VarChar(256)
  89. time_joined BigInt
  90. emailpassword_pswd_reset_tokens emailpassword_pswd_reset_tokens[]
  91. }
  92.  
  93. model emailverification_tokens {
  94. user_id String @db.VarChar(128)
  95. email String @db.VarChar(256)
  96. token String @db.VarChar(128) @unique
  97. token_expiry BigInt
  98.  
  99. @@id([user_id, email, token])
  100. @@index([token_expiry], map: "emailverification_tokens_index")
  101. }
  102.  
  103. model emailverification_verified_emails {
  104. user_id String @db.VarChar(128)
  105. email String @db.VarChar(256)
  106.  
  107. @@id([user_id, email])
  108. }
  109.  
  110. model jwt_signing_keys {
  111. key_id String @db.VarChar(255) @id
  112. key_string String
  113. algorithm String @db.VarChar(10)
  114. created_at BigInt?
  115. }
  116.  
  117. model key_value {
  118. name String @db.VarChar(128) @id
  119. value String?
  120. created_at_time BigInt?
  121. }
  122.  
  123. model passwordless_codes {
  124. code_id String @db.Char(36) @id
  125. device_id_hash String @db.Char(44)
  126. link_code_hash String @db.Char(44) @unique
  127. created_at BigInt
  128. passwordless_devices passwordless_devices @relation(fields: [device_id_hash], references: [device_id_hash], onDelete: Cascade)
  129.  
  130. @@index([created_at], map: "passwordless_codes_created_at_index")
  131. @@index([device_id_hash], map: "passwordless_codes_device_id_hash_index")
  132. }
  133.  
  134. model passwordless_devices {
  135. device_id_hash String @db.Char(44) @id
  136. email String? @db.VarChar(256)
  137. phone_number String? @db.VarChar(256)
  138. link_code_salt String @db.Char(44)
  139. failed_attempts Int
  140. passwordless_codes passwordless_codes[]
  141.  
  142. @@index([email], map: "passwordless_devices_email_index")
  143. @@index([phone_number], map: "passwordless_devices_phone_number_index")
  144. }
  145.  
  146. model passwordless_users {
  147. user_id String @db.Char(36) @id
  148. email String? @db.VarChar(256) @unique
  149. phone_number String? @db.VarChar(256) @unique
  150. time_joined BigInt
  151. }
  152.  
  153. model role_permissions {
  154. role String @db.VarChar(255)
  155. permission String @db.VarChar(255)
  156. roles roles @relation(fields: [role], references: [role], onDelete: Cascade, onUpdate: NoAction)
  157.  
  158. @@id([role, permission])
  159. @@index([permission], map: "role_permissions_permission_index")
  160. }
  161.  
  162. model roles {
  163. role String @db.VarChar(255) @id
  164. role_permissions role_permissions[]
  165. user_roles user_roles[]
  166. }
  167.  
  168. model session_access_token_signing_keys {
  169. created_at_time BigInt @id
  170. value String?
  171. }
  172.  
  173. model session_info {
  174. session_handle String @db.VarChar(255) @id
  175. user_id String @db.VarChar(128)
  176. refresh_token_hash_2 String @db.VarChar(128)
  177. session_data String?
  178. expires_at BigInt
  179. created_at_time BigInt
  180. jwt_user_payload String?
  181. }
  182.  
  183. model thirdparty_users {
  184. third_party_id String @db.VarChar(28)
  185. third_party_user_id String @db.VarChar(256)
  186. user_id String @db.Char(36) @unique
  187. email String @db.VarChar(256)
  188. time_joined BigInt
  189.  
  190. @@id([third_party_id, third_party_user_id])
  191. }
  192.  
  193. model user_metadata {
  194. user_id String @db.VarChar(128) @id
  195. user_metadata String
  196. }
  197.  
  198. model user_roles {
  199. user_id String @db.VarChar(128)
  200. role String @db.VarChar(255)
  201. roles roles @relation(fields: [role], references: [role], onDelete: Cascade, onUpdate: NoAction)
  202.  
  203. @@id([user_id, role])
  204. @@index([role], map: "user_roles_role_index")
  205. }
  206.  
  207. model userid_mapping {
  208. supertokens_user_id String @db.Char(36) @unique
  209. external_user_id String @db.VarChar(128) @unique
  210. external_user_id_info String?
  211. all_auth_recipe_users all_auth_recipe_users @relation(fields: [supertokens_user_id], references: [user_id], onDelete: Cascade, onUpdate: NoAction)
  212.  
  213. @@id([supertokens_user_id, external_user_id])
  214. }
  215.  
  216. enum Plan {
  217. FREE
  218. PREMIUM
  219. GOLD
  220. }
  221.  
Advertisement
Add Comment
Please, Sign In to add comment