78 lines
2.9 KiB
Plaintext
78 lines
2.9 KiB
Plaintext
enum MaterialKind {
|
|
WAX
|
|
FRAGRANCE
|
|
WICK
|
|
DYE
|
|
VESSEL
|
|
PACKAGING
|
|
LABEL
|
|
OTHER
|
|
}
|
|
|
|
enum MaterialUnit {
|
|
GRAM
|
|
KILOGRAM
|
|
MILLILITRE
|
|
LITRE
|
|
PIECE
|
|
METRE
|
|
}
|
|
|
|
model Supplier {
|
|
id String @id @default(uuid()) @db.Uuid
|
|
organizationId String @map("organization_id") @db.Uuid
|
|
name String @db.VarChar(160)
|
|
code String @db.VarChar(32)
|
|
contactName String @map("contact_name") @db.VarChar(160)
|
|
email String @db.VarChar(254)
|
|
phone String @db.VarChar(24)
|
|
active Boolean @default(true)
|
|
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
|
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Restrict)
|
|
materials SupplierMaterial[]
|
|
|
|
@@unique([organizationId, code])
|
|
@@unique([id, organizationId])
|
|
@@index([organizationId, active, name, id])
|
|
@@map("suppliers")
|
|
}
|
|
|
|
model Material {
|
|
id String @id @default(uuid()) @db.Uuid
|
|
organizationId String @map("organization_id") @db.Uuid
|
|
name String @db.VarChar(160)
|
|
code String @db.VarChar(32)
|
|
kind MaterialKind
|
|
unit MaterialUnit
|
|
active Boolean @default(true)
|
|
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
|
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Restrict)
|
|
suppliers SupplierMaterial[]
|
|
|
|
@@unique([organizationId, code])
|
|
@@unique([id, organizationId])
|
|
@@index([organizationId, active, kind, name, id])
|
|
@@map("materials")
|
|
}
|
|
|
|
model SupplierMaterial {
|
|
supplierId String @map("supplier_id") @db.Uuid
|
|
materialId String @map("material_id") @db.Uuid
|
|
organizationId String @map("organization_id") @db.Uuid
|
|
supplierSku String @map("supplier_sku") @db.VarChar(64)
|
|
leadTimeDays Int @map("lead_time_days")
|
|
minOrderQuantity Decimal @map("min_order_quantity") @db.Decimal(12, 3)
|
|
unitPrice Decimal @map("unit_price") @db.Decimal(12, 2)
|
|
currency String @db.Char(3)
|
|
active Boolean @default(true)
|
|
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
|
supplier Supplier @relation(fields: [supplierId, organizationId], references: [id, organizationId], onDelete: Restrict)
|
|
material Material @relation(fields: [materialId, organizationId], references: [id, organizationId], onDelete: Restrict)
|
|
|
|
@@id([supplierId, materialId])
|
|
@@index([materialId, organizationId, active])
|
|
@@map("supplier_materials")
|
|
}
|