schema.prisma 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. generator client {
  2. provider = "prisma-client-js"
  3. }
  4. datasource db {
  5. provider = "mysql"
  6. url = env("DATABASE_URL")
  7. }
  8. enum SimulationTaskStatus {
  9. PROCESSING
  10. SUCCESSES
  11. FAILED
  12. }
  13. enum TemplateTaskStatus {
  14. WAIT
  15. PROCESSING
  16. STEP1_SUCCESS
  17. STEP2_SUCCESS
  18. FAILED
  19. }
  20. enum HairTemplateStatus {
  21. DRAFT
  22. PUBLIC
  23. }
  24. enum HairTemplateCategory {
  25. LONG
  26. MEDIUM
  27. SHORT
  28. DYE
  29. }
  30. enum HairTemplateSystemFlag {
  31. YES
  32. NO
  33. }
  34. enum CustomerExpectContact {
  35. LINE
  36. PHONE
  37. EMAIL
  38. NONE
  39. }
  40. enum CustomerHairLength {
  41. SHORT
  42. MEDIUM
  43. LONG
  44. UNCONFIRM
  45. }
  46. enum CustomerHairTexture {
  47. UNCONFIRM
  48. THIN
  49. NORMAL
  50. HARD_CRUDE
  51. CURLY
  52. }
  53. enum CustomerFirstSuggestHair {
  54. AUTO
  55. LONG
  56. MEDIUM
  57. SHORT
  58. }
  59. enum CustomerVisitPurpose {
  60. CUT_DYE
  61. CUT
  62. DYE
  63. CONSULT_SIM
  64. }
  65. model HairstylistUser {
  66. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  67. username String @db.VarChar(50)
  68. email String @db.VarChar(100)
  69. password String @db.VarChar(100)
  70. createTime DateTime @default(now()) @map("create_time")
  71. updateTime DateTime @updatedAt @map("update_time")
  72. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  73. @@map("hairstylist_user")
  74. }
  75. model Customer {
  76. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  77. hairstylistId BigInt @map("hairstylist_id") @db.UnsignedBigInt
  78. name String @db.VarChar(30)
  79. namePronunciation String @default("") @map("name_pronunciation") @db.VarChar(50)
  80. phone String @db.VarChar(20)
  81. email String @default("") @db.VarChar(100)
  82. birthday DateTime? @db.Date
  83. avatar String @default("") @db.VarChar(500)
  84. expectContact CustomerExpectContact @default(NONE) @map("expect_contact")
  85. hairLength CustomerHairLength @default(UNCONFIRM) @map("hair_length")
  86. hairTexture CustomerHairTexture @default(UNCONFIRM) @map("hair_texture")
  87. notice String? @db.Text
  88. allergy String @default("") @db.VarChar(500)
  89. innerRemark String? @map("inner_remark") @db.Text
  90. followContent String? @map("follow_content") @db.Text
  91. nextFollowDate DateTime? @map("next_follow_date") @db.Date
  92. recommendVisitDate DateTime? @map("recommend_visit_date") @db.Date
  93. firstSuggestHair CustomerFirstSuggestHair @default(AUTO) @map("first_suggest_hair")
  94. planDate DateTime? @map("plan_date") @db.Date
  95. isFirstRegister Int @default(0) @map("is_first_register") @db.UnsignedTinyInt
  96. visitPurpose CustomerVisitPurpose? @map("visit_purpose")
  97. trouble String? @db.Text
  98. consultContent String? @map("consult_content") @db.Text
  99. expectLook String? @map("expect_look") @db.Text
  100. createTime DateTime @default(now()) @map("create_time")
  101. updateTime DateTime @updatedAt @map("update_time")
  102. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  103. @@unique([phone, isDeleted], map: "uk_phone_del")
  104. @@index([isDeleted], map: "idx_is_deleted")
  105. @@index([hairstylistId, isDeleted], map: "idx_hairstylist_is_deleted")
  106. @@index([nextFollowDate, isDeleted], map: "idx_next_follow")
  107. @@index([recommendVisitDate, isDeleted], map: "idx_recommend_visit")
  108. @@index([planDate, isDeleted], map: "idx_plan_date")
  109. @@map("customer")
  110. }
  111. model CustomerTreatmentRecord {
  112. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  113. customerId BigInt @map("customer_id") @db.UnsignedBigInt
  114. hairstylistId BigInt @map("hairstylist_id") @db.UnsignedBigInt
  115. treatmentTime DateTime @map("treatment_time")
  116. treatmentTitle String @map("treatment_title") @db.VarChar(200)
  117. treatmentDetail String? @map("treatment_detail") @db.Text
  118. createTime DateTime @default(now()) @map("create_time")
  119. updateTime DateTime @updatedAt @map("update_time")
  120. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  121. @@map("customer_treatment_record")
  122. }
  123. model AiHairSimulation {
  124. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  125. customerId BigInt? @map("customer_id") @db.UnsignedBigInt
  126. hairstylistId BigInt @map("hairstylist_id") @db.UnsignedBigInt
  127. originImage String @map("origin_image") @db.VarChar(500)
  128. templateIds String @map("template_ids") @db.Text
  129. simulateRemark String? @map("simulate_remark") @db.Text
  130. createTime DateTime @default(now()) @map("create_time")
  131. updateTime DateTime @updatedAt @map("update_time")
  132. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  133. @@map("ai_hair_simulation")
  134. }
  135. model AiHairSimulationTask {
  136. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  137. simulationId BigInt @map("simulation_id") @db.UnsignedBigInt
  138. templateId String @map("template_id") @db.VarChar(100)
  139. customerId BigInt? @map("customer_id") @db.UnsignedBigInt
  140. taskId String @map("task_id") @db.VarChar(200)
  141. taskStatus SimulationTaskStatus @map("task_status")
  142. resultImages String? @map("result_images") @db.Text
  143. taskStartTime DateTime @map("task_start_time")
  144. taskFinishTime DateTime? @map("task_finish_time")
  145. errorMsg String? @map("error_msg") @db.Text
  146. createTime DateTime @default(now()) @map("create_time")
  147. updateTime DateTime @updatedAt @map("update_time")
  148. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  149. @@map("ai_hair_simulation_task")
  150. }
  151. model HairTemplate {
  152. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  153. templateName String @map("template_name") @db.VarChar(100)
  154. coverUrl String @default("") @map("cover_url") @db.VarChar(500)
  155. status HairTemplateStatus
  156. category HairTemplateCategory
  157. tags String @default("") @db.VarChar(500)
  158. description String? @db.Text
  159. modelUrl String @default("") @map("model_url") @db.VarChar(500)
  160. clothesUrl String @default("") @map("clothes_url") @db.VarChar(500)
  161. backgroundUrl String @default("") @map("background_url") @db.VarChar(500)
  162. refHairUrl String @default("") @map("ref_hair_url") @db.VarChar(500)
  163. hairstylistId BigInt? @map("hairstylist_id") @db.UnsignedBigInt
  164. templateUrl String @default("") @map("template_url") @db.VarChar(500)
  165. isSystemTemplate HairTemplateSystemFlag @default(NO) @map("is_system_template")
  166. createTime DateTime @default(now()) @map("create_time")
  167. updateTime DateTime @updatedAt @map("update_time")
  168. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  169. @@index([category, isDeleted], map: "idx_category")
  170. @@index([hairstylistId, isDeleted], map: "idx_hairstylist_id")
  171. @@index([status, isDeleted], map: "idx_status")
  172. @@map("hair_template")
  173. }
  174. model HairTemplateMakeTask {
  175. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  176. totalTaskId String @map("total_task_id") @db.VarChar(200)
  177. step1TaskId String @default("") @map("step1_task_id") @db.VarChar(200)
  178. step2TaskId String @default("") @map("step2_task_id") @db.VarChar(200)
  179. taskStatus TemplateTaskStatus @map("task_status")
  180. templateId BigInt? @map("template_id") @db.UnsignedBigInt
  181. step1Resource String? @map("step1_resource") @db.Text
  182. step2Resource String? @map("step2_resource") @db.Text
  183. refHairUrl String @default("") @map("ref_hair_url") @db.VarChar(500)
  184. modelUrl String @default("") @map("model_url") @db.VarChar(500)
  185. clothesUrl String @default("") @map("clothes_url") @db.VarChar(500)
  186. backgroundUrl String @default("") @map("background_url") @db.VarChar(500)
  187. step1ResultImg String @default("") @map("step1_result_img") @db.VarChar(500)
  188. step2ResultImg String @default("") @map("step2_result_img") @db.VarChar(500)
  189. createTime DateTime @default(now()) @map("create_time")
  190. updateTime DateTime @updatedAt @map("update_time")
  191. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  192. @@map("hair_template_make_task")
  193. }