71 lines
2.6 KiB
Plaintext
71 lines
2.6 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
}
|
|
|
|
model Quote {
|
|
id Int @id @default(autoincrement())
|
|
uuid String @unique @default(uuid())
|
|
supplierId Int @map("supplier_id")
|
|
supplier Supplier @relation(fields: [supplierId], references: [id], onDelete: Cascade)
|
|
productId Int @map("product_id")
|
|
product Product @relation(fields: [productId], references: [id], onDelete: Cascade)
|
|
status String @default("active") @db.VarChar(20)
|
|
quantity Decimal @db.Decimal(12, 2)
|
|
unit String @default("ton") @db.VarChar(20)
|
|
pricePerUnit Decimal @map("price_per_unit") @db.Decimal(12, 2)
|
|
currency String @default("USD") @db.VarChar(10)
|
|
incotermsCode String? @map("incoterms_code") @db.VarChar(20)
|
|
originPointUuid String? @map("origin_point_uuid") @db.VarChar(100)
|
|
originName String? @map("origin_name") @db.VarChar(255)
|
|
validUntil DateTime? @map("valid_until") @db.Date
|
|
notes String?
|
|
createdAt DateTime @default(now()) @map("created_at")
|
|
updatedAt DateTime @updatedAt @map("updated_at")
|
|
|
|
@@index([status, productId, createdAt])
|
|
@@index([supplierId, createdAt])
|
|
@@map("exchange_quotes")
|
|
}
|
|
|
|
model Supplier {
|
|
id Int @id @default(autoincrement())
|
|
uuid String @unique @default(uuid())
|
|
teamUuid String? @unique @map("team_uuid") @db.VarChar(100)
|
|
name String @db.VarChar(255)
|
|
description String?
|
|
country String @default("") @db.VarChar(100)
|
|
countryCode String @default("") @map("country_code") @db.VarChar(10)
|
|
logoUrl String? @map("logo_url") @db.VarChar(500)
|
|
isVerified Boolean @default(false) @map("is_verified")
|
|
isActive Boolean @default(true) @map("is_active")
|
|
createdAt DateTime @default(now()) @map("created_at")
|
|
updatedAt DateTime @updatedAt @map("updated_at")
|
|
|
|
quotes Quote[]
|
|
|
|
@@index([countryCode, isActive])
|
|
@@map("exchange_suppliers")
|
|
}
|
|
|
|
model Product {
|
|
id Int @id @default(autoincrement())
|
|
uuid String @unique @default(uuid())
|
|
sku String? @unique @db.VarChar(100)
|
|
name String @db.VarChar(255)
|
|
categoryName String @default("") @map("category_name") @db.VarChar(255)
|
|
unit String @default("ton") @db.VarChar(20)
|
|
description String?
|
|
isActive Boolean @default(true) @map("is_active")
|
|
createdAt DateTime @default(now()) @map("created_at")
|
|
updatedAt DateTime @updatedAt @map("updated_at")
|
|
|
|
quotes Quote[]
|
|
|
|
@@index([categoryName, isActive])
|
|
@@map("exchange_products")
|
|
}
|