neue prisma.schema
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
binaryTargets = ["darwin-arm64", "linux-arm64-openssl-3.0.x", "debian-openssl-3.0.x", "linux-musl-openssl-3.0.x"]
|
||||
output = "../node_modules/.prisma/client"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
@@ -25,28 +24,25 @@ model EmailConfig {
|
||||
model Dienststelle {
|
||||
id Int @id @default(autoincrement())
|
||||
name String @unique
|
||||
plaetze Int @default(0) // Standard-Plätze, wird nicht mehr direkt verwendet
|
||||
plaetze Int @default(0)
|
||||
anmeldungenWunsch1 Anmeldung[] @relation("Wunsch1")
|
||||
anmeldungenWunsch2 Anmeldung[] @relation("Wunsch2")
|
||||
anmeldungenWunsch3 Anmeldung[] @relation("Wunsch3")
|
||||
zugewiesene Anmeldung[] @relation("Zugewiesen")
|
||||
|
||||
// Neue Relation zu ZeitraumPlaetze
|
||||
zeitraumPlaetze ZeitraumPlaetze[]
|
||||
}
|
||||
|
||||
model Praktikumszeitraum {
|
||||
id Int @id @default(autoincrement())
|
||||
bezeichnung String @unique // z. B. "Frühjahr 2025"
|
||||
bezeichnung String @unique
|
||||
startDatum DateTime
|
||||
endDatum DateTime
|
||||
anmeldungen Anmeldung[] @relation("PraktikumszeitraumAnmeldungen")
|
||||
|
||||
// Neue Relation zu ZeitraumPlaetze
|
||||
zeitraumPlaetze ZeitraumPlaetze[]
|
||||
}
|
||||
|
||||
// Neue Zwischentabelle für Plätze pro Zeitraum und Dienststelle
|
||||
model ZeitraumPlaetze {
|
||||
id Int @id @default(autoincrement())
|
||||
zeitraumId Int
|
||||
@@ -56,19 +52,17 @@ model ZeitraumPlaetze {
|
||||
zeitraum Praktikumszeitraum @relation(fields: [zeitraumId], references: [id], onDelete: Cascade)
|
||||
dienststelle Dienststelle @relation(fields: [dienststelleId], references: [id], onDelete: Cascade)
|
||||
|
||||
// Unique constraint: Pro Zeitraum und Dienststelle nur ein Eintrag
|
||||
@@unique([zeitraumId, dienststelleId])
|
||||
@@index([zeitraumId])
|
||||
@@index([dienststelleId])
|
||||
@@map("zeitraum_plaetze")
|
||||
}
|
||||
|
||||
// Erweiterte Status-Enum für bessere Nachverfolgung
|
||||
enum Status {
|
||||
OFFEN // pending - neu eingegangen
|
||||
BEARBEITUNG // processing - wird gerade bearbeitet
|
||||
ANGENOMMEN // accepted - wurde angenommen
|
||||
ABGELEHNT // rejected - wurde abgelehnt
|
||||
OFFEN
|
||||
BEARBEITUNG
|
||||
ANGENOMMEN
|
||||
ABGELEHNT
|
||||
}
|
||||
|
||||
model Anmeldung {
|
||||
@@ -76,30 +70,27 @@ model Anmeldung {
|
||||
anrede String
|
||||
vorname String
|
||||
nachname String
|
||||
geburtsdatum String // Neu hinzugefügt
|
||||
strasse String // Neu hinzugefügt
|
||||
hausnummer String // Neu hinzugefügt
|
||||
ort String // Neu hinzugefügt
|
||||
plz String // Neu hinzugefügt
|
||||
telefon String // Neu hinzugefügt
|
||||
geburtsdatum String
|
||||
strasse String
|
||||
hausnummer String
|
||||
ort String
|
||||
plz String
|
||||
telefon String
|
||||
email String
|
||||
schulart String // Neu hinzugefügt
|
||||
schulklasse String? // Neu hinzugefügt
|
||||
noteDeutsch Int // Geändert von String zu Int
|
||||
noteMathe Int // Geändert von String zu Int
|
||||
schulart String
|
||||
schulklasse String?
|
||||
noteDeutsch Int
|
||||
noteMathe Int
|
||||
sozialverhalten String?
|
||||
motivation String? // Neu hinzugefügt
|
||||
alter Int? // Neu hinzugefügt für Altersvalidierung
|
||||
motivation String?
|
||||
alter Int?
|
||||
status Status @default(OFFEN)
|
||||
|
||||
// Neue Felder für Status-Tracking
|
||||
processedAt DateTime? // Wann wurde sie bearbeitet
|
||||
processedAt DateTime?
|
||||
|
||||
// Praktikumszeitraum Relation
|
||||
praktikumId Int?
|
||||
praktikum Praktikumszeitraum? @relation("PraktikumszeitraumAnmeldungen", fields: [praktikumId], references: [id])
|
||||
|
||||
// Dienststellen Relationen
|
||||
zugewiesenId Int?
|
||||
zugewiesen Dienststelle? @relation("Zugewiesen", fields: [zugewiesenId], references: [id])
|
||||
wunsch1Id Int?
|
||||
@@ -112,7 +103,6 @@ model Anmeldung {
|
||||
timestamp DateTime @default(now())
|
||||
pdfs PdfDatei[]
|
||||
|
||||
// Indizes für bessere Performance
|
||||
@@index([status])
|
||||
@@index([processedAt])
|
||||
@@index([zugewiesenId])
|
||||
@@ -124,4 +114,4 @@ model PdfDatei {
|
||||
pfad String
|
||||
anmeldung Anmeldung @relation(fields: [anmeldungId], references: [id], onDelete: Cascade)
|
||||
anmeldungId Int
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user