139 lines
3.2 KiB
Plaintext
139 lines
3.2 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
enum StatoMateriale {
|
|
proposto
|
|
approvato
|
|
rifiutato
|
|
|
|
@@map("stato_materiale")
|
|
}
|
|
|
|
enum StatoMagazzinoVoce {
|
|
buono
|
|
da_riparare
|
|
mancante
|
|
|
|
@@map("stato_magazzino_voce")
|
|
}
|
|
|
|
model Materiale {
|
|
id String @id @default(uuid())
|
|
nome String
|
|
categoria String
|
|
unitaMisura String @map("unita_misura")
|
|
stato StatoMateriale @default(proposto)
|
|
propostoDaOrgId String @map("proposto_da_org_id")
|
|
creatoIl DateTime @default(now()) @map("creato_il")
|
|
|
|
listaModelloVoci ListaModelloVoce[]
|
|
listaVoci ListaVoce[]
|
|
magazzinoVoci MagazzinoVoce[]
|
|
eventoCheck EventoCheck[]
|
|
|
|
@@map("materiale")
|
|
}
|
|
|
|
model TipoEvento {
|
|
id String @id @default(uuid())
|
|
nome String
|
|
|
|
listeModello ListaModello[]
|
|
|
|
@@map("tipo_evento")
|
|
}
|
|
|
|
model ListaModello {
|
|
id String @id @default(uuid())
|
|
nome String
|
|
tipoEventoId String @map("tipo_evento_id")
|
|
pubblica Boolean @default(true)
|
|
|
|
tipoEvento TipoEvento @relation(fields: [tipoEventoId], references: [id])
|
|
voci ListaModelloVoce[]
|
|
|
|
@@map("lista_modello")
|
|
}
|
|
|
|
model ListaModelloVoce {
|
|
listaModelloId String @map("lista_modello_id")
|
|
materialeId String @map("materiale_id")
|
|
quantita Int
|
|
|
|
listaModello ListaModello @relation(fields: [listaModelloId], references: [id])
|
|
materiale Materiale @relation(fields: [materialeId], references: [id])
|
|
|
|
@@id([listaModelloId, materialeId])
|
|
@@map("lista_modello_voce")
|
|
}
|
|
|
|
model Lista {
|
|
id String @id @default(uuid())
|
|
nome String
|
|
orgId String @map("org_id")
|
|
creataIl DateTime @default(now()) @map("creata_il")
|
|
|
|
voci ListaVoce[]
|
|
eventi Evento[]
|
|
|
|
@@map("lista")
|
|
}
|
|
|
|
model ListaVoce {
|
|
listaId String @map("lista_id")
|
|
materialeId String @map("materiale_id")
|
|
quantita Int
|
|
|
|
lista Lista @relation(fields: [listaId], references: [id])
|
|
materiale Materiale @relation(fields: [materialeId], references: [id])
|
|
|
|
@@id([listaId, materialeId])
|
|
@@map("lista_voce")
|
|
}
|
|
|
|
model MagazzinoVoce {
|
|
id String @id @default(uuid())
|
|
orgId String @map("org_id")
|
|
materialeId String @map("materiale_id")
|
|
quantitaPosseduta Int @map("quantita_posseduta")
|
|
stato StatoMagazzinoVoce
|
|
posizione String?
|
|
note String?
|
|
|
|
materiale Materiale @relation(fields: [materialeId], references: [id])
|
|
|
|
@@map("magazzino_voce")
|
|
}
|
|
|
|
model Evento {
|
|
id String @id @default(uuid())
|
|
orgId String @map("org_id")
|
|
nome String
|
|
listaId String @map("lista_id")
|
|
data DateTime
|
|
|
|
lista Lista @relation(fields: [listaId], references: [id])
|
|
check EventoCheck[]
|
|
|
|
@@map("evento")
|
|
}
|
|
|
|
model EventoCheck {
|
|
eventoId String @map("evento_id")
|
|
materialeId String @map("materiale_id")
|
|
portato Boolean @default(false)
|
|
note String?
|
|
|
|
evento Evento @relation(fields: [eventoId], references: [id])
|
|
materiale Materiale @relation(fields: [materialeId], references: [id])
|
|
|
|
@@id([eventoId, materialeId])
|
|
@@map("evento_check")
|
|
}
|