All materials
schema.prisma
prismaschema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Cooperative {
id Int @id @default(autoincrement())
nom String
village String
contact_name String
contact_phone String?
created_at DateTime @default(now())
batches Batch[]
}
model Batch {
id Int @id @default(autoincrement())
cooperative_id Int
cooperative Cooperative @relation(fields: [cooperative_id], references: [id])
date_reception DateTime
poids_brut Float
net_weight Float?
variete String
stage String @default("reception")
grade_qualite String?
notes String?
created_at DateTime @default(now())
updated_at DateTime @updatedAt
quality_checks QualityCheck[]
shipment_items ShipmentItem[]
}
model QualityCheck {
id Int @id @default(autoincrement())
batch_id Int
batch Batch @relation(fields: [batch_id], references: [id])
check_type String
result String
moisture_pct Float?
defect_pct Float?
inspector String
checked_at DateTime @default(now())
notes String?
}
model Shipment {
id Int @id @default(autoincrement())
destination String
vessel_name String?
departure_date DateTime?
status String @default("pending")
container_id String?
created_at DateTime @default(now())
updated_at DateTime @updatedAt
items ShipmentItem[]
certificates ExportCertificate[]
}
model ShipmentItem {
id Int @id @default(autoincrement())
shipment_id Int
shipment Shipment @relation(fields: [shipment_id], references: [id])
batch_id Int
batch Batch @relation(fields: [batch_id], references: [id])
quantity_kg Float
}
model ExportCertificate {
id Int @id @default(autoincrement())
shipment_id Int
shipment Shipment @relation(fields: [shipment_id], references: [id])
type_certificat String
numero String @unique
date_emission DateTime @default(now())
date_expiration DateTime
status String @default("active")
}