271 lines
8.4 KiB
Plaintext
271 lines
8.4 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
enum StatoTassonomia {
|
|
CONFERMATA
|
|
DA_APPROVARE
|
|
}
|
|
|
|
enum TipoNotifica {
|
|
TASSONOMIA_PROPOSTA
|
|
ATTIVITA_IN_ATTESA
|
|
ATTIVITA_PUBBLICATA
|
|
ATTIVITA_BOZZA_NOTA
|
|
}
|
|
|
|
// destinatarioId null = notifica "broadcast" visibile a chiunque abbia ruolo admin/moderatore
|
|
// (usata per segnalare nuove proposte/attività da revisionare); altrimenti è personale.
|
|
model Notifica {
|
|
id Int @id @default(autoincrement())
|
|
tipo TipoNotifica
|
|
messaggio String
|
|
link String?
|
|
destinatarioId String? @map("destinatario_id")
|
|
letta Boolean @default(false)
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
|
|
@@index([destinatarioId])
|
|
@@map("notifica")
|
|
}
|
|
|
|
model StatoAttivita {
|
|
id String @id @db.VarChar(2)
|
|
nome String
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
attivita Attivita[]
|
|
|
|
@@map("stato_attivita")
|
|
}
|
|
|
|
model TipoCategoria {
|
|
id String @id
|
|
nome String
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
categorie Categoria[]
|
|
|
|
@@map("tipo_categoria")
|
|
}
|
|
|
|
model TipoParagrafo {
|
|
id String @id
|
|
nome String
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
paragrafi Paragrafo[]
|
|
|
|
@@map("tipo_paragrafo")
|
|
}
|
|
|
|
model Attivita {
|
|
id Int @id @default(autoincrement())
|
|
nome String
|
|
autore String
|
|
autoreId String @map("autore_id")
|
|
padreId Int? @map("padre")
|
|
statoId String @map("stato")
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
padre Attivita? @relation("AttivitaPadre", fields: [padreId], references: [id])
|
|
figli Attivita[] @relation("AttivitaPadre")
|
|
stato StatoAttivita @relation(fields: [statoId], references: [id])
|
|
|
|
paragrafi Paragrafo[]
|
|
brancaLinks BrancaAttivita[]
|
|
categoriaLinks CategoriaAttivita[]
|
|
materialeLinks MaterialeAttivita[]
|
|
periodoAnnoLinks PeriodoAnnoAttivita[]
|
|
noteList NotaAttivita[]
|
|
|
|
@@map("attivita")
|
|
}
|
|
|
|
model NotaAttivita {
|
|
id Int @id @default(autoincrement())
|
|
attivitaId Int @map("attivita_id")
|
|
testo String @db.VarChar(1000)
|
|
autore String
|
|
autoreId String @map("autore_id")
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
|
|
attivita Attivita @relation(fields: [attivitaId], references: [id])
|
|
|
|
@@map("nota_attivita")
|
|
}
|
|
|
|
model Branca {
|
|
id Int @id @default(autoincrement())
|
|
nome String
|
|
inizioEta Int? @map("inizio_eta")
|
|
fineEta Int? @map("fine_eta")
|
|
colore String? @db.VarChar(10)
|
|
stato StatoTassonomia @default(CONFERMATA)
|
|
creatoDaId String? @map("creato_da_id")
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
attivitaLinks BrancaAttivita[]
|
|
|
|
@@map("branca")
|
|
}
|
|
|
|
model BrancaAttivita {
|
|
attivitaId Int @map("attivita_id")
|
|
brancaId Int @map("branca_id")
|
|
cancellato Boolean
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
attivita Attivita @relation(fields: [attivitaId], references: [id])
|
|
branca Branca @relation(fields: [brancaId], references: [id])
|
|
|
|
@@id([attivitaId, brancaId])
|
|
@@map("branca_attivita")
|
|
}
|
|
|
|
model PeriodoAnno {
|
|
id Int @id @default(autoincrement())
|
|
nome String
|
|
inizioMese Int? @map("inizio_mese")
|
|
fineMese Int? @map("fine_mese")
|
|
stato StatoTassonomia @default(CONFERMATA)
|
|
creatoDaId String? @map("creato_da_id")
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
attivitaLinks PeriodoAnnoAttivita[]
|
|
|
|
@@map("periodo_anno")
|
|
}
|
|
|
|
model PeriodoAnnoAttivita {
|
|
attivitaId Int @map("attivita_id")
|
|
periodoAnnoId Int @map("periodo_anno_id")
|
|
cancellato Boolean
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
attivita Attivita @relation(fields: [attivitaId], references: [id])
|
|
periodoAnno PeriodoAnno @relation(fields: [periodoAnnoId], references: [id])
|
|
|
|
@@id([attivitaId, periodoAnnoId])
|
|
@@map("periodo_anno_attivita")
|
|
}
|
|
|
|
model Paragrafo {
|
|
id Int @id @default(autoincrement())
|
|
attivitaId Int @map("attivita_id")
|
|
corpo String @db.VarChar(500)
|
|
autore String
|
|
tipoId String @map("tipo")
|
|
ordine Int
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
attivita Attivita @relation(fields: [attivitaId], references: [id])
|
|
tipo TipoParagrafo @relation(fields: [tipoId], references: [id])
|
|
|
|
@@map("paragrafo")
|
|
}
|
|
|
|
model Categoria {
|
|
id Int @id @default(autoincrement())
|
|
nome String
|
|
padreId Int? @map("padre")
|
|
tipoId String @map("tipo")
|
|
stato StatoTassonomia @default(CONFERMATA)
|
|
creatoDaId String? @map("creato_da_id")
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
padre Categoria? @relation("CategoriaPadre", fields: [padreId], references: [id])
|
|
figli Categoria[] @relation("CategoriaPadre")
|
|
tipo TipoCategoria @relation(fields: [tipoId], references: [id])
|
|
|
|
attivitaLinks CategoriaAttivita[]
|
|
materialeLinks CategoriaMateriale[]
|
|
|
|
@@map("categoria")
|
|
}
|
|
|
|
model CategoriaAttivita {
|
|
attivitaId Int @map("attivita_id")
|
|
categoriaId Int @map("categoria_id")
|
|
cancellato Boolean
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
attivita Attivita @relation(fields: [attivitaId], references: [id])
|
|
categoria Categoria @relation(fields: [categoriaId], references: [id])
|
|
|
|
@@id([attivitaId, categoriaId])
|
|
@@map("categoria_attivita")
|
|
}
|
|
|
|
model Materiale {
|
|
id Int @id @default(autoincrement())
|
|
nome String
|
|
proprieta Json?
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
attivitaLinks MaterialeAttivita[]
|
|
categoriaLinks CategoriaMateriale[]
|
|
|
|
@@map("materiale")
|
|
}
|
|
|
|
model MaterialeAttivita {
|
|
attivitaId Int @map("attivita_id")
|
|
materialeId Int @map("materiale_id")
|
|
proprieta Json?
|
|
cancellato Boolean
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
attivita Attivita @relation(fields: [attivitaId], references: [id])
|
|
materiale Materiale @relation(fields: [materialeId], references: [id])
|
|
|
|
@@id([attivitaId, materialeId])
|
|
@@map("materiale_attivita")
|
|
}
|
|
|
|
model CategoriaMateriale {
|
|
materialeId Int @map("materiale_id")
|
|
categoriaId Int @map("categoria_id")
|
|
cancellato Boolean
|
|
dataCreazione DateTime @default(now()) @map("data_creazione")
|
|
dataModifica DateTime @updatedAt @map("data_modifica")
|
|
utenteModifica String @map("utente_modifica")
|
|
|
|
materiale Materiale @relation(fields: [materialeId], references: [id])
|
|
categoria Categoria @relation(fields: [categoriaId], references: [id])
|
|
|
|
@@id([materialeId, categoriaId])
|
|
@@map("categoria_materiale")
|
|
}
|