schema.prisma 8.0 KB

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