Learn by Directing AI
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")
}