From d194b6b22581d4e5ed03f6687393ecfa41acc532 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sun, 12 Apr 2026 15:13:42 +0200 Subject: [PATCH] feat(documents): add ScriptType enum and script_type column - ScriptType enum: UNKNOWN, TYPEWRITER, HANDWRITING_LATIN, HANDWRITING_KURRENT - V24 migration adds script_type VARCHAR(30) NOT NULL DEFAULT 'UNKNOWN' - Document entity: scriptType field with @Builder.Default UNKNOWN - DocumentUpdateDTO: optional scriptType field - DocumentService: wires scriptType through update method Refs #226 Co-Authored-By: Claude Sonnet 4.6 --- .../org/raddatz/familienarchiv/dto/DocumentUpdateDTO.java | 2 ++ .../java/org/raddatz/familienarchiv/model/Document.java | 6 ++++++ .../java/org/raddatz/familienarchiv/model/ScriptType.java | 8 ++++++++ .../raddatz/familienarchiv/service/DocumentService.java | 4 ++++ .../db/migration/V24__add_script_type_to_documents.sql | 1 + 5 files changed, 21 insertions(+) create mode 100644 backend/src/main/java/org/raddatz/familienarchiv/model/ScriptType.java create mode 100644 backend/src/main/resources/db/migration/V24__add_script_type_to_documents.sql diff --git a/backend/src/main/java/org/raddatz/familienarchiv/dto/DocumentUpdateDTO.java b/backend/src/main/java/org/raddatz/familienarchiv/dto/DocumentUpdateDTO.java index 79789f24..2cf39760 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/dto/DocumentUpdateDTO.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/dto/DocumentUpdateDTO.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.UUID; import lombok.Data; +import org.raddatz.familienarchiv.model.ScriptType; @Data public class DocumentUpdateDTO { @@ -18,4 +19,5 @@ public class DocumentUpdateDTO { private List receiverIds; private String tags; private Boolean metadataComplete; + private ScriptType scriptType; } diff --git a/backend/src/main/java/org/raddatz/familienarchiv/model/Document.java b/backend/src/main/java/org/raddatz/familienarchiv/model/Document.java index f72e3f5e..e5be77a3 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/model/Document.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/model/Document.java @@ -91,6 +91,12 @@ public class Document { @Builder.Default private boolean metadataComplete = false; + @Enumerated(EnumType.STRING) + @Column(name = "script_type", nullable = false) + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) + @Builder.Default + private ScriptType scriptType = ScriptType.UNKNOWN; + @ManyToMany(fetch = FetchType.EAGER) @JoinTable(name = "document_receivers", joinColumns = @JoinColumn(name = "document_id"), inverseJoinColumns = @JoinColumn(name = "person_id")) @Builder.Default diff --git a/backend/src/main/java/org/raddatz/familienarchiv/model/ScriptType.java b/backend/src/main/java/org/raddatz/familienarchiv/model/ScriptType.java new file mode 100644 index 00000000..b6ff83e4 --- /dev/null +++ b/backend/src/main/java/org/raddatz/familienarchiv/model/ScriptType.java @@ -0,0 +1,8 @@ +package org.raddatz.familienarchiv.model; + +public enum ScriptType { + UNKNOWN, + TYPEWRITER, + HANDWRITING_LATIN, + HANDWRITING_KURRENT +} diff --git a/backend/src/main/java/org/raddatz/familienarchiv/service/DocumentService.java b/backend/src/main/java/org/raddatz/familienarchiv/service/DocumentService.java index 7d1bef2b..e3a6aea0 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/service/DocumentService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/service/DocumentService.java @@ -222,6 +222,10 @@ public class DocumentService { doc.setMetadataComplete(dto.getMetadataComplete()); } + if (dto.getScriptType() != null) { + doc.setScriptType(dto.getScriptType()); + } + // 4. Datei austauschen (nur wenn eine neue ausgewählt wurde) if (newFile != null && !newFile.isEmpty()) { FileService.UploadResult upload = fileService.uploadFile(newFile, newFile.getOriginalFilename()); diff --git a/backend/src/main/resources/db/migration/V24__add_script_type_to_documents.sql b/backend/src/main/resources/db/migration/V24__add_script_type_to_documents.sql new file mode 100644 index 00000000..87a48a00 --- /dev/null +++ b/backend/src/main/resources/db/migration/V24__add_script_type_to_documents.sql @@ -0,0 +1 @@ +ALTER TABLE documents ADD COLUMN script_type VARCHAR(30) NOT NULL DEFAULT 'UNKNOWN';