schema.prisma 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  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 CustomerContactType {
  21. LINE
  22. PHONE
  23. EMAIL
  24. }
  25. enum CustomerLineStatus {
  26. LINKED
  27. UNLINKED
  28. INVITED
  29. KEEP
  30. }
  31. enum CustomerHairLength {
  32. SHORT
  33. MEDIUM
  34. LONG
  35. }
  36. enum CustomerFollowStatus {
  37. NONE
  38. NEED_FOLLOW_UP
  39. SENT
  40. }
  41. model HairstylistUser {
  42. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  43. username String @db.VarChar(50)
  44. email String @db.VarChar(100)
  45. password String @db.VarChar(100)
  46. createTime DateTime @default(now()) @map("create_time")
  47. updateTime DateTime @updatedAt @map("update_time")
  48. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  49. @@map("hairstylist_user")
  50. }
  51. model Customer {
  52. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  53. hairstylistId BigInt @map("hairstylist_id") @db.UnsignedBigInt
  54. name String @db.VarChar(100)
  55. kana String @default("") @db.VarChar(100)
  56. phone String @db.VarChar(32)
  57. email String @default("") @db.VarChar(100)
  58. birthday DateTime? @db.Date
  59. avatarUrl String @map("avatar_url") @db.VarChar(500)
  60. contactType CustomerContactType @default(LINE) @map("contact_type")
  61. lineStatus CustomerLineStatus? @map("line_status")
  62. lastVisitDate DateTime? @map("last_visit_date") @db.Date
  63. nextVisitDate DateTime? @map("next_visit_date") @db.Date
  64. visitCycle String @default("") @map("visit_cycle") @db.VarChar(64)
  65. hairLength CustomerHairLength? @map("hair_length")
  66. hairType String @default("") @map("hair_type") @db.VarChar(64)
  67. hairCondition String @default("") @map("hair_condition") @db.VarChar(255)
  68. concern String? @db.Text
  69. desiredImage String? @map("desired_image") @db.Text
  70. formulaNote String? @map("formula_note") @db.Text
  71. allergyNote String? @map("allergy_note") @db.Text
  72. privateNote String? @map("private_note") @db.Text
  73. followStatus CustomerFollowStatus @default(NONE) @map("follow_status")
  74. followTiming String @default("") @map("follow_timing") @db.VarChar(64)
  75. followMessage String? @map("follow_message") @db.Text
  76. createTime DateTime @default(now()) @map("create_time")
  77. updateTime DateTime @updatedAt @map("update_time")
  78. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  79. @@index([hairstylistId], map: "idx_hairstylist_id")
  80. @@index([phone], map: "idx_phone")
  81. @@index([nextVisitDate], map: "idx_next_visit_date")
  82. @@index([followStatus], map: "idx_follow_status")
  83. @@index([hairLength], map: "idx_hair_length")
  84. @@index([isDeleted], map: "idx_is_deleted")
  85. @@index([hairstylistId, isDeleted], map: "idx_hairstylist_is_deleted")
  86. @@map("customer")
  87. }
  88. model CustomerTreatmentRecord {
  89. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  90. customerId BigInt @map("customer_id") @db.UnsignedBigInt
  91. hairstylistId BigInt @map("hairstylist_id") @db.UnsignedBigInt
  92. treatmentTime DateTime @map("treatment_time")
  93. treatmentTitle String @map("treatment_title") @db.VarChar(200)
  94. treatmentDetail String? @map("treatment_detail") @db.Text
  95. createTime DateTime @default(now()) @map("create_time")
  96. updateTime DateTime @updatedAt @map("update_time")
  97. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  98. @@map("customer_treatment_record")
  99. }
  100. model AiHairSimulation {
  101. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  102. customerId BigInt? @map("customer_id") @db.UnsignedBigInt
  103. hairstylistId BigInt @map("hairstylist_id") @db.UnsignedBigInt
  104. originImage String @map("origin_image") @db.VarChar(500)
  105. simulateRemark String? @map("simulate_remark") @db.Text
  106. createTime DateTime @default(now()) @map("create_time")
  107. updateTime DateTime @updatedAt @map("update_time")
  108. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  109. @@map("ai_hair_simulation")
  110. }
  111. model AiHairSimulationTask {
  112. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  113. simulationId BigInt @map("simulation_id") @db.UnsignedBigInt
  114. templateId String @map("template_id") @db.VarChar(100)
  115. customerId BigInt? @map("customer_id") @db.UnsignedBigInt
  116. taskId String @map("task_id") @db.VarChar(200)
  117. taskStatus SimulationTaskStatus @map("task_status")
  118. resultImages String? @map("result_images") @db.Text
  119. taskStartTime DateTime @map("task_start_time")
  120. taskFinishTime DateTime? @map("task_finish_time")
  121. errorMsg String? @map("error_msg") @db.Text
  122. createTime DateTime @default(now()) @map("create_time")
  123. updateTime DateTime @updatedAt @map("update_time")
  124. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  125. @@map("ai_hair_simulation_task")
  126. }
  127. model HairTemplate {
  128. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  129. templateName String @map("template_name") @db.VarChar(100)
  130. coverUrl String @default("") @map("cover_url") @db.VarChar(500)
  131. status String @db.VarChar(32)
  132. category String @db.VarChar(32)
  133. tags String @default("") @db.VarChar(500)
  134. description String? @db.Text
  135. modelUrl String @default("") @map("model_url") @db.VarChar(500)
  136. clothesUrl String @default("") @map("clothes_url") @db.VarChar(500)
  137. backgroundUrl String @default("") @map("background_url") @db.VarChar(500)
  138. refHairUrl String @default("") @map("ref_hair_url") @db.VarChar(500)
  139. createTime DateTime @default(now()) @map("create_time")
  140. updateTime DateTime @updatedAt @map("update_time")
  141. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  142. @@map("hair_template")
  143. }
  144. model HairTemplateMakeTask {
  145. id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  146. totalTaskId String @map("total_task_id") @db.VarChar(200)
  147. step1TaskId String @default("") @map("step1_task_id") @db.VarChar(200)
  148. step2TaskId String @default("") @map("step2_task_id") @db.VarChar(200)
  149. taskStatus TemplateTaskStatus @map("task_status")
  150. templateId BigInt? @map("template_id") @db.UnsignedBigInt
  151. step1Resource String? @map("step1_resource") @db.Text
  152. step2Resource String? @map("step2_resource") @db.Text
  153. refHairUrl String @default("") @map("ref_hair_url") @db.VarChar(500)
  154. modelUrl String @default("") @map("model_url") @db.VarChar(500)
  155. clothesUrl String @default("") @map("clothes_url") @db.VarChar(500)
  156. backgroundUrl String @default("") @map("background_url") @db.VarChar(500)
  157. step1ResultImg String @default("") @map("step1_result_img") @db.VarChar(500)
  158. step2ResultImg String @default("") @map("step2_result_img") @db.VarChar(500)
  159. createTime DateTime @default(now()) @map("create_time")
  160. updateTime DateTime @updatedAt @map("update_time")
  161. isDeleted Int @default(0) @map("is_deleted") @db.UnsignedTinyInt
  162. @@map("hair_template_make_task")
  163. }