Files
Order-Loop/prisma/schema.prisma
2026-06-02 10:23:09 +03:00

80 lines
2.1 KiB
Plaintext

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model User {
id String @id @default(cuid())
email String @unique
passwordHash String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sessions Session[]
resetTokens PasswordResetToken[]
}
model Session {
id String @id @default(cuid())
sessionToken String @unique
userId String
expiresAt DateTime
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
}
model PasswordResetToken {
id String @id @default(cuid())
token String @unique
userId String
expiresAt DateTime
used Boolean @default(false)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
}
model Order {
id String @id @default(cuid())
title String
status String @default("pending")
notes String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
customers OrderCustomer[]
items OrderItem[]
}
model Customer {
id String @id @default(cuid())
name String @unique
createdAt DateTime @default(now())
orders OrderCustomer[]
items OrderItem[]
}
model OrderCustomer {
orderId String
customerId String
order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)
customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade)
@@id([orderId, customerId])
}
model OrderItem {
id String @id @default(cuid())
orderId String
customerId String?
itemName String
initPrice Float @default(0)
myPrice Float @default(0)
taxRatio Float @default(0.16)
quantity Int @default(1)
netPrice Float @default(0)
myNetPrice Float @default(0)
finalPrice Float @default(0)
order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)
customer Customer? @relation(fields: [customerId], references: [id], onDelete: SetNull)
}