diff --git a/backend/src/main/java/org/raddatz/familienarchiv/dto/CreateTranscriptionBlockDTO.java b/backend/src/main/java/org/raddatz/familienarchiv/dto/CreateTranscriptionBlockDTO.java index 90f46359..d3d6a332 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/dto/CreateTranscriptionBlockDTO.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/dto/CreateTranscriptionBlockDTO.java @@ -1,14 +1,21 @@ package org.raddatz.familienarchiv.dto; +import jakarta.validation.Valid; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.Positive; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.raddatz.familienarchiv.model.PersonMention; + +import java.util.ArrayList; +import java.util.List; @Data @NoArgsConstructor @AllArgsConstructor +@Builder public class CreateTranscriptionBlockDTO { @Min(0) private int pageNumber; @@ -22,4 +29,8 @@ public class CreateTranscriptionBlockDTO { private double height; private String text; private String label; + + @Valid + @Builder.Default + private List mentionedPersons = new ArrayList<>(); } diff --git a/backend/src/main/java/org/raddatz/familienarchiv/dto/UpdateTranscriptionBlockDTO.java b/backend/src/main/java/org/raddatz/familienarchiv/dto/UpdateTranscriptionBlockDTO.java index f0577e6f..210d4c74 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/dto/UpdateTranscriptionBlockDTO.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/dto/UpdateTranscriptionBlockDTO.java @@ -1,13 +1,24 @@ package org.raddatz.familienarchiv.dto; +import jakarta.validation.Valid; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.raddatz.familienarchiv.model.PersonMention; + +import java.util.ArrayList; +import java.util.List; @Data @NoArgsConstructor @AllArgsConstructor +@Builder public class UpdateTranscriptionBlockDTO { private String text; private String label; + + @Valid + @Builder.Default + private List mentionedPersons = new ArrayList<>(); } diff --git a/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java index 7abfb237..7eace34d 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java @@ -98,7 +98,7 @@ class TranscriptionServiceTest { return b; }); - CreateTranscriptionBlockDTO dto = new CreateTranscriptionBlockDTO(1, 0.1, 0.2, 0.3, 0.4, "hello", null); + CreateTranscriptionBlockDTO dto = new CreateTranscriptionBlockDTO(1, 0.1, 0.2, 0.3, 0.4, "hello", null, java.util.List.of()); TranscriptionBlock result = transcriptionService.createBlock(docId, dto, userId); @@ -168,7 +168,7 @@ class TranscriptionServiceTest { when(documentService.getDocumentById(any())).thenReturn( Document.builder().scriptType(ScriptType.TYPEWRITER).build()); - UpdateTranscriptionBlockDTO dto = new UpdateTranscriptionBlockDTO("new text", null); + UpdateTranscriptionBlockDTO dto = new UpdateTranscriptionBlockDTO("new text", null, java.util.List.of()); TranscriptionBlock result = transcriptionService.updateBlock(docId, blockId, dto, userId); @@ -189,7 +189,7 @@ class TranscriptionServiceTest { when(documentService.getDocumentById(any())).thenReturn( Document.builder().scriptType(ScriptType.TYPEWRITER).build()); - UpdateTranscriptionBlockDTO dto = new UpdateTranscriptionBlockDTO("text", "Anrede"); + UpdateTranscriptionBlockDTO dto = new UpdateTranscriptionBlockDTO("text", "Anrede", java.util.List.of()); TranscriptionBlock result = transcriptionService.updateBlock(docId, blockId, dto, UUID.randomUUID()); @@ -208,7 +208,7 @@ class TranscriptionServiceTest { Document.builder().scriptType(ScriptType.TYPEWRITER).build()); TranscriptionBlock result = transcriptionService.updateBlock( - docId, blockId, new UpdateTranscriptionBlockDTO("new", null), UUID.randomUUID()); + docId, blockId, new UpdateTranscriptionBlockDTO("new", null, java.util.List.of()), UUID.randomUUID()); assertThat(result.getSource()).isEqualTo(BlockSource.MANUAL); } @@ -226,7 +226,7 @@ class TranscriptionServiceTest { when(documentService.getDocumentById(any())).thenReturn( Document.builder().scriptType(ScriptType.HANDWRITING_KURRENT).sender(sender).build()); - transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("text", null), UUID.randomUUID()); + transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("text", null, java.util.List.of()), UUID.randomUUID()); verify(senderModelService).checkAndTriggerTraining(senderId); } @@ -242,7 +242,7 @@ class TranscriptionServiceTest { when(documentService.getDocumentById(any())).thenReturn( Document.builder().scriptType(ScriptType.HANDWRITING_KURRENT).build()); - transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("text", null), UUID.randomUUID()); + transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("text", null, java.util.List.of()), UUID.randomUUID()); verify(senderModelService, never()).checkAndTriggerTraining(any()); } @@ -477,7 +477,7 @@ class TranscriptionServiceTest { Document.builder().scriptType(ScriptType.TYPEWRITER).build()); when(annotationRepository.findById(annotId)).thenReturn(Optional.of(annotation)); - transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("new text", null), userId); + transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("new text", null, java.util.List.of()), userId); @SuppressWarnings("unchecked") ArgumentCaptor> payloadCaptor = ArgumentCaptor.forClass(Map.class); @@ -502,7 +502,7 @@ class TranscriptionServiceTest { when(documentService.getDocumentById(any())).thenReturn( Document.builder().scriptType(ScriptType.TYPEWRITER).build()); - transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("same text", null), userId); + transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("same text", null, java.util.List.of()), userId); verify(auditService, never()).logAfterCommit(any(), any(), any(), any()); }