56 lines
1.5 KiB
Plaintext
56 lines
1.5 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model User {
|
|
id Int @id @default(autoincrement())
|
|
name String
|
|
email String @unique
|
|
passwordHash String
|
|
createdAt DateTime @default(now())
|
|
}
|
|
|
|
model Category {
|
|
id Int @id @default(autoincrement())
|
|
name String @unique
|
|
slug String @unique
|
|
createdAt DateTime @default(now())
|
|
products Product[]
|
|
}
|
|
|
|
model Product {
|
|
id Int @id @default(autoincrement())
|
|
categoryId Int
|
|
name String @unique
|
|
description String?
|
|
price Decimal @db.Decimal(10, 2)
|
|
imageUrl String?
|
|
stock Int @default(0)
|
|
createdAt DateTime @default(now())
|
|
category Category @relation(fields: [categoryId], references: [id], onDelete: Restrict)
|
|
orderItems OrderItem[]
|
|
}
|
|
|
|
model Order {
|
|
id Int @id @default(autoincrement())
|
|
customerName String
|
|
customerEmail String
|
|
totalPrice Decimal @db.Decimal(10, 2)
|
|
createdAt DateTime @default(now())
|
|
items OrderItem[]
|
|
}
|
|
|
|
model OrderItem {
|
|
id Int @id @default(autoincrement())
|
|
orderId Int
|
|
productId Int
|
|
quantity Int
|
|
unitPrice Decimal @db.Decimal(10, 2)
|
|
order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)
|
|
product Product @relation(fields: [productId], references: [id], onDelete: Restrict)
|
|
} |