all
This commit is contained in:
1 parent
90125aede9
commit
2d6c29a1f3
404 files changed
+126983
-85
No files matched your search
@@ -0,0 +1,252 @@
|
||||
// use prisma-8
|
||||
|
||||
model Supplier {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
phone String?
|
||||
email String?
|
||||
address String?
|
||||
taxId String?
|
||||
lastSupply TimestamptzString?
|
||||
createdAt TimestamptzString @default(now())
|
||||
|
||||
products Product[]
|
||||
|
||||
@@map("supplier")
|
||||
}
|
||||
|
||||
model Product {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
description String?
|
||||
sku String @unique
|
||||
barcode String? @unique
|
||||
unit String @default("pza")
|
||||
status String @default("active")
|
||||
minStock Int @default(0)
|
||||
imageUrl String?
|
||||
createdAt TimestamptzString @default(now())
|
||||
updatedAt temporal.updatedAtString()
|
||||
|
||||
supplierId Int?
|
||||
supplier Supplier? @relation(fields: [supplierId], references: [id])
|
||||
|
||||
categories ProductCategory[]
|
||||
warehouses Warehouse[]
|
||||
history ProductHistory[]
|
||||
movements InventoryMovement[]
|
||||
|
||||
@@map("product")
|
||||
}
|
||||
|
||||
model Category {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
createdAt TimestamptzString @default(now())
|
||||
|
||||
products ProductCategory[]
|
||||
|
||||
@@map("category")
|
||||
}
|
||||
|
||||
model ProductCategory {
|
||||
productId Int
|
||||
categoryId Int
|
||||
|
||||
product Product @relation(fields: [productId], references: [id])
|
||||
category Category @relation(fields: [categoryId], references: [id])
|
||||
|
||||
@@id([productId, categoryId])
|
||||
@@map("product_category")
|
||||
}
|
||||
|
||||
model Inventory {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
address String?
|
||||
|
||||
warehouses Warehouse[]
|
||||
movements InventoryMovement[]
|
||||
sessions CashRegisterSession[]
|
||||
|
||||
@@map("inventory")
|
||||
}
|
||||
|
||||
model Warehouse {
|
||||
inventoryId Int
|
||||
productId Int
|
||||
stock Int @default(0)
|
||||
|
||||
inventory Inventory @relation(fields: [inventoryId], references: [id])
|
||||
product Product @relation(fields: [productId], references: [id])
|
||||
|
||||
@@id([inventoryId, productId])
|
||||
@@map("warehouse")
|
||||
}
|
||||
|
||||
model InventoryMovement {
|
||||
id Int @id @default(autoincrement())
|
||||
productId Int
|
||||
inventoryId Int
|
||||
type String
|
||||
quantity Int
|
||||
reason String?
|
||||
createdAt TimestamptzString @default(now())
|
||||
|
||||
userId Int?
|
||||
user User? @relation(fields: [userId], references: [id])
|
||||
|
||||
product Product @relation(fields: [productId], references: [id])
|
||||
inventory Inventory @relation(fields: [inventoryId], references: [id])
|
||||
|
||||
@@map("inventory_movement")
|
||||
}
|
||||
|
||||
model ProductHistory {
|
||||
id Int @id @default(autoincrement())
|
||||
productId Int
|
||||
unitPrice Decimal
|
||||
costUnit Decimal
|
||||
status String
|
||||
createdAt TimestamptzString @default(now())
|
||||
soldAt TimestamptzString?
|
||||
|
||||
product Product @relation(fields: [productId], references: [id])
|
||||
cartProducts CartProduct[]
|
||||
|
||||
@@map("product_history")
|
||||
}
|
||||
|
||||
model ShopCart {
|
||||
id Int @id @default(autoincrement())
|
||||
totalPrice Decimal
|
||||
discount Decimal @default(0)
|
||||
status String @default("open")
|
||||
createdAt TimestamptzString @default(now())
|
||||
|
||||
userId Int?
|
||||
user User? @relation(fields: [userId], references: [id])
|
||||
customerId Int?
|
||||
customer Customer? @relation(fields: [customerId], references: [id])
|
||||
|
||||
items CartProduct[]
|
||||
payments Payment[]
|
||||
|
||||
@@map("shop_cart")
|
||||
}
|
||||
|
||||
model Customer {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
phone String?
|
||||
email String?
|
||||
taxId String?
|
||||
createdAt TimestamptzString @default(now())
|
||||
|
||||
carts ShopCart[]
|
||||
|
||||
@@map("customer")
|
||||
}
|
||||
|
||||
model CashRegisterSession {
|
||||
id Int @id @default(autoincrement())
|
||||
inventoryId Int
|
||||
openedById Int
|
||||
closedById Int?
|
||||
openingCash Decimal
|
||||
closingCash Decimal?
|
||||
expectedCash Decimal?
|
||||
status String @default("open")
|
||||
openedAt TimestamptzString @default(now())
|
||||
closedAt TimestamptzString?
|
||||
|
||||
inventory Inventory @relation(fields: [inventoryId], references: [id])
|
||||
openedBy User @relation("SessionOpenedBy", fields: [openedById], references: [id])
|
||||
closedBy User? @relation("SessionClosedBy", fields: [closedById], references: [id])
|
||||
movements CashMovement[]
|
||||
|
||||
@@map("cash_register_session")
|
||||
}
|
||||
|
||||
model CashMovement {
|
||||
id Int @id @default(autoincrement())
|
||||
sessionId Int
|
||||
type String
|
||||
amount Decimal
|
||||
reason String?
|
||||
createdAt TimestamptzString @default(now())
|
||||
|
||||
userId Int?
|
||||
user User? @relation(fields: [userId], references: [id])
|
||||
|
||||
session CashRegisterSession @relation(fields: [sessionId], references: [id])
|
||||
|
||||
@@map("cash_movement")
|
||||
}
|
||||
|
||||
model CartProduct {
|
||||
cartId Int
|
||||
historyId Int
|
||||
quantity Int
|
||||
|
||||
cart ShopCart @relation(fields: [cartId], references: [id])
|
||||
history ProductHistory @relation(fields: [historyId], references: [id])
|
||||
|
||||
@@id([cartId, historyId])
|
||||
@@map("cart_products")
|
||||
}
|
||||
|
||||
model User {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
email String @unique
|
||||
role String
|
||||
password String
|
||||
createdAt TimestamptzString @default(now())
|
||||
updatedAt temporal.updatedAtString()
|
||||
|
||||
carts ShopCart[]
|
||||
payments Payment[]
|
||||
inventoryMovements InventoryMovement[]
|
||||
openedSessions CashRegisterSession[] @relation("SessionOpenedBy")
|
||||
closedSessions CashRegisterSession[] @relation("SessionClosedBy")
|
||||
cashMovements CashMovement[]
|
||||
openedOperatingDays OperatingDay[] @relation("OperatingDayOpenedBy")
|
||||
closedOperatingDays OperatingDay[] @relation("OperatingDayClosedBy")
|
||||
|
||||
@@map("user")
|
||||
}
|
||||
|
||||
model OperatingDay {
|
||||
id Int @id @default(autoincrement())
|
||||
date TimestamptzString @default(now())
|
||||
status String @default("open")
|
||||
openedById Int
|
||||
closedById Int?
|
||||
openedAt TimestamptzString @default(now())
|
||||
closedAt TimestamptzString?
|
||||
|
||||
openedBy User @relation("OperatingDayOpenedBy", fields: [openedById], references: [id])
|
||||
closedBy User? @relation("OperatingDayClosedBy", fields: [closedById], references: [id])
|
||||
|
||||
@@map("operating_day")
|
||||
}
|
||||
|
||||
model Payment {
|
||||
id Int @id @default(autoincrement())
|
||||
cartId Int
|
||||
userId Int
|
||||
amount Decimal
|
||||
orderId Int?
|
||||
terminalId Int?
|
||||
status String
|
||||
paid Boolean @default(false)
|
||||
paymentMethod String
|
||||
paidAt TimestamptzString?
|
||||
createdAt TimestamptzString @default(now())
|
||||
|
||||
cart ShopCart @relation(fields: [cartId], references: [id])
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
|
||||
@@map("payment")
|
||||
}
|
||||
Reference in new issue
Block a user