@@ -104,12 +104,8 @@ model User {
104104 payments Payment []
105105 messagesSent Message [] @relation (" FromUser " )
106106 messagesReceived Message [] @relation (" ToUser " )
107- reviews Review [] @relation (" Reviewer " )
108- deletedreviews Review [] @relation (" ReviewDeletedBy " )
109- reviewees Review [] @relation (" Reviewee " )
110107 salesReports SellerSalesReport []
111108 notifications Notification []
112- Review Review []
113109 UserVoucher UserVoucher []
114110 Transaction Transaction []
115111 AddressLabel AddressLabel []
@@ -370,8 +366,15 @@ model Product {
370366 images String []
371367 /// [Variants]
372368 variants Json
369+
373370 rating Float ? @default (0.0 )
374371 ratingCount Int @default (0 )
372+ rating1Count Int @default (0 )
373+ rating2Count Int @default (0 )
374+ rating3Count Int @default (0 )
375+ rating4Count Int @default (0 )
376+ rating5Count Int @default (0 )
377+
375378 totalViews Int @default (0 )
376379 slugId String @unique
377380
@@ -401,6 +404,7 @@ model Product {
401404 ProductSKUSnapshot ProductSKUSnapshot []
402405
403406 @@index ([deletedAt ] )
407+ @@index ([shopId ] )
404408}
405409
406410model ProductLike {
@@ -795,29 +799,29 @@ model BannerDesign {
795799 @@index ([shopId ] )
796800}
797801
798- model Review {
799- id Int @id @default (autoincrement () )
800- revieweeId Int
801- orderItemId Int @unique
802- rating Int
803- content String
804- images String []
805- reviewee User @relation (" Reviewee " , fields : [revieweeId ] , references : [id ] , onDelete : Cascade , onUpdate : NoAction )
802+ // model Review {
803+ // id Int @id @default(autoincrement())
804+ // revieweeId Int
805+ // orderItemId Int @unique
806+ // rating Int
807+ // content String
808+ // images String[]
809+ // reviewee User @relation("Reviewee", fields: [revieweeId], references: [id], onDelete: Cascade, onUpdate: NoAction)
806810
807- createdById Int
808- createdBy User @relation (" Reviewer " , fields : [createdById ] , references : [id ] , onDelete : Cascade , onUpdate : NoAction )
809- updatedById Int ?
810- updatedBy User ? @relation (fields : [updatedById ] , references : [id ] , onDelete : Cascade , onUpdate : NoAction )
811- deletedById Int ?
812- deletedBy User ? @relation (" ReviewDeletedBy " , fields : [deletedById ] , references : [id ] , onDelete : Cascade , onUpdate : NoAction )
811+ // createdById Int
812+ // createdBy User @relation("Reviewer", fields: [createdById], references: [id], onDelete: Cascade, onUpdate: NoAction)
813+ // updatedById Int?
814+ // updatedBy User? @relation(fields: [updatedById], references: [id], onDelete: Cascade, onUpdate: NoAction)
815+ // deletedById Int?
816+ // deletedBy User? @relation("ReviewDeletedBy", fields: [deletedById], references: [id], onDelete: Cascade, onUpdate: NoAction)
813817
814- deletedAt DateTime ?
815- createdAt DateTime @default (now () )
816- updatedAt DateTime @updatedAt
818+ // deletedAt DateTime?
819+ // createdAt DateTime @default(now())
820+ // updatedAt DateTime @updatedAt
817821
818- @@index ([revieweeId ] )
819- @@index ([createdById ] )
820- }
822+ // @@index([revieweeId])
823+ // @@index([createdById])
824+ // }
821825
822826model Language {
823827 id Int @id @default (autoincrement () )
@@ -1078,6 +1082,32 @@ model ProductTranslation {
10781082 @@index ([productId ] )
10791083}
10801084
1085+ model Review {
1086+ id Int @id @default (autoincrement () )
1087+ orderItemId Int @unique
1088+ userId Int
1089+ productId Int
1090+ skuId Int ?
1091+
1092+ rating Int
1093+ message String ?
1094+ reason ReviewBadReason ?
1095+
1096+ serviceSeller Int // Chất lượng bán hàng
1097+ serviceShip Int // Chất lượng giao hàng
1098+
1099+ images String [] // Danh sách URL ảnh (không lưu FILE)
1100+
1101+ isAnonymous Boolean @default (false ) // Người dùng muốn ẩn danh
1102+
1103+ createdAt DateTime @default (now () )
1104+ updatedAt DateTime @updatedAt
1105+
1106+ @@index ([userId ] )
1107+ @@index ([productId ] )
1108+ @@index ([skuId ] )
1109+ }
1110+
10811111// Enums
10821112enum ValueTypeDiscount {
10831113 PERCENTAGE
@@ -1218,3 +1248,10 @@ enum platformType {
12181248 MOBILE
12191249 DESKTOP
12201250}
1251+
1252+ enum ReviewBadReason {
1253+ DAMAGED_PRODUCT // Hàng lỗi hoặc bị hư hỏng
1254+ FAKE_PRODUCT // Sản phẩm giả mạo
1255+ NOT_AS_DESCRIBED // Sản phẩm không như mô tả
1256+ POOR_QUALITY // Sản phẩm chất lượng kém
1257+ }
0 commit comments