Geprüft: das Modell trägt Fallarten, aber keine Dokumentarten
Vor Phase 3 geprüft, ob neue Dokumentarten ohne Code auskommen. Ergebnis: für Fallarten ja, für alles andere nein. CaseSection hängt fest an caseId. Ein Bußgeld ist keine Ermittlung, ein Sonderarbeitsvertrag erst recht nicht. PersonnelFile.fields ist ein nacktes JSON-Feld ohne Vorlage: ein Vertrag dort hätte keine Versionierung, keinen Diff, keine Begründungspflicht, kein minClearance je Feld und keinen Eintrag im Zugriffsprotokoll — genau die Eigenschaften, wegen derer das System gebaut wird. Und würde man solche Dokumente behelfsweise als Case führen, stünden sie in Fallliste, Fallzählung und Suche nach Ermittlungen. Dazu ein zweiter Befund aus den beiden Beispieldokumenten: sie sind grundverschieden gebaut. Der Vorfallsbericht ist ein Formular und wird von den vorhandenen Feldtypen vollständig abgedeckt. Der Sonderarbeitsvertrag ist fester Vertragstext mit Platzhaltern, Paragraphen und Unterschriftenzeilen — dafür reicht eine Feldliste nicht. Empfehlung in docs/13: eine gemeinsame Dokumentebene, additiv, mit denselben Zusicherungen wie CaseSection. Case, CaseSection und CaseEntry bleiben unangetastet. Nichts davon gebaut. Die Entscheidung steht als erster Punkt in Phase 3.
This commit is contained in:
@@ -145,6 +145,12 @@ model CaseTemplate {
|
|||||||
description String?
|
description String?
|
||||||
isActive Boolean @default(true)
|
isActive Boolean @default(true)
|
||||||
fields Json // TemplateField[]
|
fields Json // TemplateField[]
|
||||||
|
|
||||||
|
/// Muster des Aktenzeichens, siehe docs/13-entscheidungen.md. Die Abteilung
|
||||||
|
/// fuehrt gewachsene Praefixe wie "AKT-PA"; der Nummernkreis laeuft je
|
||||||
|
/// Praefix und Jahr, damit zwei Fallarten sich nicht in die Quere kommen.
|
||||||
|
numberPrefix String @default("AfiS")
|
||||||
|
numberPadding Int @default(4)
|
||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
createdById String?
|
createdById String?
|
||||||
|
|
||||||
@@ -209,11 +215,14 @@ enum CaseStatus {
|
|||||||
SEALED
|
SEALED
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Kollisionsfreie Vergabe des Aktenzeichens. Gelesen mit SELECT ... FOR UPDATE
|
/// Kollisionsfreie Vergabe des Aktenzeichens, ein Nummernkreis je Praefix und
|
||||||
/// in derselben Transaktion wie das Anlegen des Falls.
|
/// Jahr. Hochgezaehlt in derselben Transaktion wie das Anlegen des Falls.
|
||||||
model CaseCounter {
|
model CaseCounter {
|
||||||
year Int @id
|
prefix String
|
||||||
|
year Int
|
||||||
lastNumber Int @default(0)
|
lastNumber Int @default(0)
|
||||||
|
|
||||||
|
@@id([prefix, year])
|
||||||
}
|
}
|
||||||
|
|
||||||
model CaseSection {
|
model CaseSection {
|
||||||
|
|||||||
Reference in New Issue
Block a user