From 2dbc4ef3486de7323779fb7c1ba91d1254df31b2 Mon Sep 17 00:00:00 2001 From: maverickstuder Date: Wed, 13 Mar 2024 15:26:35 +0100 Subject: [PATCH] RED-8702 --- .../service/EntityLogMergeService.java | 16 +- .../processor/service/EntityLogService.java | 2 +- .../ManualRedactionMapper.java | 3 +- .../ManualRedactionService.java | 2 +- .../ManualRedactionUndoService.java | 2 +- .../PendingDictionaryEntryFactory.java | 8 +- .../service/FileTesterAndProvider.java | 6 +- .../integration/tests/EntityLogMergeTest.java | 36 ++-- .../v1/server/integration/tests/FileTest.java | 7 +- .../tests/ManualRedactionTest.java | 166 ++++++++++++------ .../AbstractPersistenceServerServiceTest.java | 6 +- .../build.gradle.kts | 1 + .../analysislog/entitylog/CascadeSave.java | 12 ++ .../analysislog/entitylog/EntityLog.java | 42 +++++ .../analysislog/entitylog/EntityLogEntry.java | 6 +- 15 files changed, 223 insertions(+), 92 deletions(-) create mode 100644 persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/CascadeSave.java diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java index 12ba5b1ea..a588c72e5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java @@ -81,7 +81,7 @@ public class EntityLogMergeService { List matchingEntities = entityLog.getEntityLogEntry() .stream() - .filter(entityLogEntry -> manualChangesIds.contains(entityLogEntry.getId())) + .filter(entityLogEntry -> manualChangesIds.contains(entityLogEntry.getEntryId())) .collect(Collectors.toList()); final int analysisNumber = entityLog.getAnalysisNumber(); @@ -143,7 +143,7 @@ public class EntityLogMergeService { private EntityLogEntry findMatchingEntry(String annotationId, List matchingEntities) { return matchingEntities.stream() - .filter(entityLogEntry -> entityLogEntry.getId().equals(annotationId)) + .filter(entityLogEntry -> entityLogEntry.getEntryId().equals(annotationId)) .findAny() .orElseThrow(() -> new NotFoundException("No matching EntityLogEntry found for id " + annotationId)); } @@ -182,7 +182,7 @@ public class EntityLogMergeService { boolean isHint = isHint(manualRedactionEntry.getType(), dossier); EntityLogEntry entityLogEntry = EntityLogEntry.builder() - .id(manualRedactionEntry.getAnnotationId()) + .entryId(manualRedactionEntry.getAnnotationId()) .type(manualRedactionEntry.getType()) .value(manualRedactionEntry.getValue()) .legalBasis(manualRedactionEntry.getLegalBasis()) @@ -237,7 +237,7 @@ public class EntityLogMergeService { private void mergeIdsToRemove(IdRemoval idRemoval, List entityLogEntries, int analysisNumber) { var entity = entityLogEntries.stream() - .filter(entityLogEntry -> entityLogEntry.getId().equals(idRemoval.getAnnotationId())) + .filter(entityLogEntry -> entityLogEntry.getEntryId().equals(idRemoval.getAnnotationId())) .findAny(); entity.ifPresent(entityLogEntry -> { entityLogEntry.setState(EntryState.IGNORED); @@ -258,7 +258,7 @@ public class EntityLogMergeService { private void mergeResizeRedactions(ManualResizeRedaction manualResizeRedaction, List entityLogEntries, int analysisNumber) { var entity = entityLogEntries.stream() - .filter(entityLogEntry -> entityLogEntry.getId().equals(manualResizeRedaction.getAnnotationId())) + .filter(entityLogEntry -> entityLogEntry.getEntryId().equals(manualResizeRedaction.getAnnotationId())) .findAny(); entity.ifPresent(entityLogEntry -> { entityLogEntry.setTextAfter(manualResizeRedaction.getTextAfter()); @@ -283,7 +283,7 @@ public class EntityLogMergeService { private void mergeLegalBasisChanges(ManualLegalBasisChange manualLegalBasisChange, List entityLogEntries, int analysisNumber) { var entity = entityLogEntries.stream() - .filter(entityLogEntry -> entityLogEntry.getId().equals(manualLegalBasisChange.getAnnotationId())) + .filter(entityLogEntry -> entityLogEntry.getEntryId().equals(manualLegalBasisChange.getAnnotationId())) .findAny(); entity.ifPresent(entityLogEntry -> { entityLogEntry.setLegalBasis(manualLegalBasisChange.getLegalBasis()); @@ -325,7 +325,7 @@ public class EntityLogMergeService { boolean isHint = isHint(recategorization.getType(), dossier); var entity = entityLogEntries.stream() - .filter(entityLogEntry -> entityLogEntry.getId().equals(recategorization.getAnnotationId())) + .filter(entityLogEntry -> entityLogEntry.getEntryId().equals(recategorization.getAnnotationId())) .findAny(); entity.ifPresent(entityLogEntry -> { entityLogEntry.setType(recategorization.getType()); @@ -348,7 +348,7 @@ public class EntityLogMergeService { private void mergeForceRedactions(ManualForceRedaction forceRedaction, List entityLogEntries, int analysisNumber) { var entity = entityLogEntries.stream() - .filter(entityLogEntry -> entityLogEntry.getId().equals(forceRedaction.getAnnotationId())) + .filter(entityLogEntry -> entityLogEntry.getEntryId().equals(forceRedaction.getAnnotationId())) .findAny(); entity.ifPresent(entityLogEntry -> { entityLogEntry.setLegalBasis(forceRedaction.getLegalBasis()); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java index d763854da..dd6e406a7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java @@ -80,7 +80,7 @@ public class EntityLogService { Map commentCountPerAnnotationId = commentService.getCommentCounts(fileId); entityLog.getEntityLogEntry() - .forEach(entityLogEntry -> entityLogEntry.setNumberOfComments(commentCountPerAnnotationId.getOrDefault(entityLogEntry.getId(), 0))); + .forEach(entityLogEntry -> entityLogEntry.setNumberOfComments(commentCountPerAnnotationId.getOrDefault(entityLogEntry.getEntryId(), 0))); return entityLog; } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java index 83a314bae..f667dabe4 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java @@ -10,7 +10,6 @@ import java.util.Set; import org.springframework.stereotype.Service; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.EntityLogService; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; @@ -187,7 +186,7 @@ public class ManualRedactionMapper { return entityLog.getEntityLogEntry() .stream() - .filter(entry -> entry.getId().equals(annotationId)) + .filter(entry -> entry.getEntryId().equals(annotationId)) .findFirst() .orElseThrow(() -> new NotFoundException("Annotation does not exist in entity log.")); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java index 82e4549a5..f3c56a10a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java @@ -348,7 +348,7 @@ public class ManualRedactionService { return entityLog.getEntityLogEntry() .stream() - .filter(entry -> entry.getId().equals(annotationId)) + .filter(entry -> entry.getEntryId().equals(annotationId)) .findFirst() .orElseThrow(() -> new NotFoundException("Annotation does not exist in entity log.")); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java index d753850c1..b47411bba 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java @@ -343,7 +343,7 @@ public class ManualRedactionUndoService { return entityLog.getEntityLogEntry() .stream() - .filter(entry -> entry.getId().equals(annotationId)) + .filter(entry -> entry.getEntryId().equals(annotationId)) .findFirst() .orElseThrow(() -> new NotFoundException("Annotation does not exist in entity log.")); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/PendingDictionaryEntryFactory.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/PendingDictionaryEntryFactory.java index 6c9a317ed..8c53a07d0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/PendingDictionaryEntryFactory.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/PendingDictionaryEntryFactory.java @@ -35,7 +35,7 @@ public class PendingDictionaryEntryFactory { .propertyChanges(Map.of("value", manualRedactionEntry.getValue())) .build()); return EntityLogEntry.builder() - .id(manualRedactionEntry.getAnnotationId()) + .entryId(manualRedactionEntry.getAnnotationId()) .value(manualRedactionEntry.getValue()) .type(manualRedactionEntry.getType()) .entryType(Optional.ofNullable(manualRedactionEntry.getDictionaryEntryType()) @@ -82,7 +82,7 @@ public class PendingDictionaryEntryFactory { .build()); return EntityLogEntry.builder() - .id(originalEntry.getId()) + .entryId(originalEntry.getEntryId()) .value(originalEntry.getValue()) .type(originalEntry.getType()) .entryType(originalEntry.getEntryType()) @@ -121,7 +121,7 @@ public class PendingDictionaryEntryFactory { .propertyChanges(propertyChanges) .build()); return EntityLogEntry.builder() - .id(originalEntry.getId()) + .entryId(originalEntry.getEntryId()) .value(manualChange.getValue()) .type(originalEntry.getType()) .entryType(originalEntry.getEntryType()) @@ -171,7 +171,7 @@ public class PendingDictionaryEntryFactory { .build()); return EntityLogEntry.builder() - .id(originalEntry.getId()) + .entryId(originalEntry.getEntryId()) .value(originalEntry.getValue()) .type(manualChange.getType()) .entryType(originalEntry.getEntryType()) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java index d702fb1c6..214b3c64e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java @@ -66,10 +66,12 @@ public class FileTesterAndProvider { fileManagementStorageService.saveEntityLog(dossier.getId(), file.getFileId(), - new EntityLog(1, + new EntityLog(dossier.getId(), + fileId, + 1, 1, List.of(EntityLogEntry.builder() - .id("annotationId") + .entryId("annotationId") .type("manual") .value("value entry") .entryType(EntryType.ENTITY) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java index 7a041bc58..2de272ccf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java @@ -120,7 +120,7 @@ public class EntityLogMergeTest { ManualRedactions manualRedactions = provideManualRedactions(entryToAddId, entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId, fileId, rectangleToAddId); - var entityLog = provideEntityLog(entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId); + var entityLog = provideEntityLog(dossierId, fileId, entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId); when(manualRedactionProviderService.getManualRedactions(any(), any())).thenReturn(manualRedactions); when(fileStatusService.getStatus(fileId)).thenReturn(FileModel.builder().excluded(false).dossierStatusId(dossierTemplateId).id(fileId).build()); @@ -137,7 +137,7 @@ public class EntityLogMergeTest { var optionalEntityLogEntry = response.getEntityLogEntry() .stream() - .filter(entityLogEntry1 -> entityLogEntry1.getId().equals(entryToAddId)) + .filter(entityLogEntry1 -> entityLogEntry1.getEntryId().equals(entryToAddId)) .findFirst(); assertTrue(optionalEntityLogEntry.isPresent()); var entityLogEntry = optionalEntityLogEntry.get(); @@ -152,7 +152,7 @@ public class EntityLogMergeTest { var optionalRemoveEntryLogEntry = response.getEntityLogEntry() .stream() - .filter(entityLogEntry1 -> entityLogEntry1.getId().equals(entryToRemoveId)) + .filter(entityLogEntry1 -> entityLogEntry1.getEntryId().equals(entryToRemoveId)) .findFirst(); assertTrue(optionalRemoveEntryLogEntry.isPresent()); var removeEntryLogEntry = optionalRemoveEntryLogEntry.get(); @@ -166,7 +166,7 @@ public class EntityLogMergeTest { var optionalResizeEntryLogEntry = response.getEntityLogEntry() .stream() - .filter(entityLogEntry1 -> entityLogEntry1.getId().equals(entryToResizeId)) + .filter(entityLogEntry1 -> entityLogEntry1.getEntryId().equals(entryToResizeId)) .findFirst(); assertTrue(optionalResizeEntryLogEntry.isPresent()); var resizeEntryLogEntry = optionalResizeEntryLogEntry.get(); @@ -190,7 +190,7 @@ public class EntityLogMergeTest { var optionalLegalBasisEntryLogEntry = response.getEntityLogEntry() .stream() - .filter(entityLogEntry1 -> entityLogEntry1.getId().equals(entryLegalBasisId)) + .filter(entityLogEntry1 -> entityLogEntry1.getEntryId().equals(entryLegalBasisId)) .findFirst(); assertTrue(optionalLegalBasisEntryLogEntry.isPresent()); var legalBasisEntryLogEntry = optionalLegalBasisEntryLogEntry.get(); @@ -205,7 +205,7 @@ public class EntityLogMergeTest { var optionalForceRedactionEntryLogEntry = response.getEntityLogEntry() .stream() - .filter(entityLogEntry1 -> entityLogEntry1.getId().equals(forceRedactionId)) + .filter(entityLogEntry1 -> entityLogEntry1.getEntryId().equals(forceRedactionId)) .findFirst(); assertTrue(optionalForceRedactionEntryLogEntry.isPresent()); var forceRedactionEntryLogEntry = optionalForceRedactionEntryLogEntry.get(); @@ -220,7 +220,7 @@ public class EntityLogMergeTest { var optionalRectangleEntryLogEntry = response.getEntityLogEntry() .stream() - .filter(entityLogEntry1 -> entityLogEntry1.getId().equals(rectangleToAddId)) + .filter(entityLogEntry1 -> entityLogEntry1.getEntryId().equals(rectangleToAddId)) .findFirst(); assertTrue(optionalRectangleEntryLogEntry.isPresent()); var rectangleEntryLogEntry = optionalRectangleEntryLogEntry.get(); @@ -236,22 +236,24 @@ public class EntityLogMergeTest { } - private EntityLog provideEntityLog(String entryToRemoveId, String entryToResizeId, String entryLegalBasisId, String forceRedactionId) { + private EntityLog provideEntityLog(String dossierId, String fileId, String entryToRemoveId, String entryToResizeId, String entryLegalBasisId, String forceRedactionId) { List positions = new ArrayList<>(); positions.add(new Position(1, 1, 1, 1, 1)); - return new EntityLog(1, + return new EntityLog(dossierId, + fileId, 1, - Lists.newArrayList(EntityLogEntry.builder() - .id(entryToRemoveId) + 1, + Lists.newArrayList(EntityLogEntry.builder().entityLogId(EntityLog.getId(dossierId, fileId)) + .entryId(entryToRemoveId) .type("manual") .value("Luke Skywalker") .entryType(EntryType.ENTITY) .state(EntryState.APPLIED) .dictionaryEntry(true) .build(), - EntityLogEntry.builder() - .id(entryToResizeId) + EntityLogEntry.builder().entityLogId(EntityLog.getId(dossierId, fileId)) + .entryId(entryToResizeId) .type("manual") .value("Darth Vader") .entryType(EntryType.ENTITY) @@ -259,8 +261,8 @@ public class EntityLogMergeTest { .dictionaryEntry(true) .positions(positions) .build(), - EntityLogEntry.builder() - .id(entryLegalBasisId) + EntityLogEntry.builder().entityLogId(EntityLog.getId(dossierId, fileId)) + .entryId(entryLegalBasisId) .type("manual") .value("Darth Luke") .entryType(EntryType.ENTITY) @@ -268,8 +270,8 @@ public class EntityLogMergeTest { .dictionaryEntry(true) .positions(positions) .build(), - EntityLogEntry.builder() - .id(forceRedactionId) + EntityLogEntry.builder().entityLogId(EntityLog.getId(dossierId, fileId)) + .entryId(forceRedactionId) .type("manual") .value("Darth Luke") .entryType(EntryType.ENTITY) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java index fe831f9d0..3193deebd 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java @@ -369,10 +369,13 @@ public class FileTest extends AbstractPersistenceServerServiceTest { var type = typeProvider.testAndProvideType(dossierTemplate, null, "manual"); var annotationId = "imagine_this_makes_sense"; - EntityLog entityLog = new EntityLog(1, + EntityLog entityLog = new EntityLog(dossierId, + fileId, + 1, 1, List.of(EntityLogEntry.builder() - .id(annotationId) + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId(annotationId) .type(type.getType()) .value("value entry") .state(EntryState.APPLIED) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java index 7672880cc..af1866789 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java @@ -45,10 +45,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryState; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryType; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AddRedactionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.AddRedactionRequestModel; @@ -124,10 +121,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getId(), DictionaryEntryType.ENTRY); - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id("AnnotationId") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("AnnotationId") .type(type.getType()) .value("Luke Skywalker") .entryType(EntryType.ENTITY) @@ -318,10 +318,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { Dictionary dossierDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), dossier.getId()); assertThat(dossierDictionary.getEntries()).containsExactlyInAnyOrder("Luke Skywalker"); - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id("AnnotationId") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("AnnotationId") .type("test") .value("Luke Skywalker") .entryType(EntryType.ENTITY) @@ -378,10 +381,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { // CreateTypeValue dossierDictionaryType = MagicConverter.convert(type, CreateTypeValue.class); // dictionaryClient.addType(dossierDictionaryType, dossier.getId()); - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id("AnnotationId") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("AnnotationId") .type("test") .value("Luke Skywalker") .entryType(EntryType.ENTITY) @@ -433,10 +439,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { // dictionaryClient.addType(dossierDictionaryType, dossier.getId()); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getId(), DictionaryEntryType.ENTRY); - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id("AnnotationId") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("AnnotationId") .type("test") .value("Luke Skywalker") .entryType(EntryType.ENTITY) @@ -520,10 +529,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); var loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId(), false, true); - var entityLog1 = new EntityLog(1, + var entityLog1 = new EntityLog(dossier1.getId(), + file1.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id(addRedactions.get(0).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier1.getId(), file1.getFileId())) + .entryId(addRedactions.get(0).getAnnotationId()) .type(typeDosDict.getType()) .value("test redaction in dossier") .dossierDictionaryEntry(true) @@ -531,7 +543,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .state(EntryState.APPLIED) .build(), EntityLogEntry.builder() - .id(addRedactions.get(1).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier1.getId(), file1.getFileId())) + .entryId(addRedactions.get(1).getAnnotationId()) .type(typeDosTempDict.getType()) .value("test redaction in dossier template") .dictionaryEntry(true) @@ -547,10 +560,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var redactionRequest1 = RedactionRequest.builder().dossierId(file1.getDossierId()).fileId(file1.getFileId()).dossierTemplateId(file1.getDossierTemplateId()).build(); when(entityLogService.getEntityLog(eq(file1.getDossierId()), eq(file1.getFileId()), any(), anyBoolean())).thenReturn(entityLog1); - var entityLog2 = new EntityLog(1, + var entityLog2 = new EntityLog(dossier2.getId(), + file2.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id(addRedactions.get(1).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier2.getId(), file2.getFileId())) + .entryId(addRedactions.get(1).getAnnotationId()) .type(typeDosTempDict.getType()) .value("test redaction in dossier template") .dictionaryEntry(true) @@ -685,10 +701,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); var loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId(), false, true); - var entityLog1 = new EntityLog(1, + var entityLog1 = new EntityLog(dossier1.getId(), + file1.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id(addRedactions.get(0).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier1.getId(), file1.getFileId())) + .entryId(addRedactions.get(0).getAnnotationId()) .type(typeDosDict.getType()) .value("test redaction in dossier yayy") .dossierDictionaryEntry(true) @@ -696,7 +715,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .state(EntryState.APPLIED) .build(), EntityLogEntry.builder() - .id(addRedactions.get(1).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier1.getId(), file1.getFileId())) + .entryId(addRedactions.get(1).getAnnotationId()) .type(typeDosTempDict.getType()) .value("test redaction in dossier template yayy") .dictionaryEntry(true) @@ -712,10 +732,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var redactionRequest1 = RedactionRequest.builder().dossierId(file1.getDossierId()).fileId(file1.getFileId()).dossierTemplateId(file1.getDossierTemplateId()).build(); when(entityLogService.getEntityLog(eq(file1.getDossierId()), eq(file1.getFileId()), any(), anyBoolean())).thenReturn(entityLog1); - var entityLog2 = new EntityLog(1, + var entityLog2 = new EntityLog(dossier2.getId(), + file2.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id(addRedactions.get(1).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier2.getId(), file2.getFileId())) + .entryId(addRedactions.get(1).getAnnotationId()) .type(typeDosTempDict.getType()) .value("test redaction in dossier template yayy") .dictionaryEntry(true) @@ -854,10 +877,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); - var entityLog1 = new EntityLog(1, + var entityLog1 = new EntityLog(dossier1.getId(), + file1.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id(addRedactions.get(0).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier1.getId(), file1.getFileId())) + .entryId(addRedactions.get(0).getAnnotationId()) .type(typeDosDict.getType()) .value("test redaction in dossier") .dossierDictionaryEntry(true) @@ -865,7 +891,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .state(EntryState.APPLIED) .build(), EntityLogEntry.builder() - .id(addRedactions.get(1).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier1.getId(), file1.getFileId())) + .entryId(addRedactions.get(1).getAnnotationId()) .type(typeDosTempDict.getType()) .value("test redaction in dossier template") .dictionaryEntry(true) @@ -881,10 +908,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var redactionRequest1 = RedactionRequest.builder().dossierId(file1.getDossierId()).fileId(file1.getFileId()).dossierTemplateId(file1.getDossierTemplateId()).build(); when(entityLogService.getEntityLog(file1.getDossierId(), file1.getFileId())).thenReturn(entityLog1); - var entityLog2 = new EntityLog(1, + var entityLog2 = new EntityLog(dossier2.getId(), + file2.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id(addRedactions.get(1).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier2.getId(), file2.getFileId())) + .entryId(addRedactions.get(1).getAnnotationId()) .type(typeDosTempDict.getType()) .value("test redaction in dossier template") .dictionaryEntry(true) @@ -1020,10 +1050,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); - var entityLog1 = new EntityLog(1, + var entityLog1 = new EntityLog(dossier1.getId(), + file1.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id(addRedactions.get(0).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier1.getId(), file1.getFileId())) + .entryId(addRedactions.get(0).getAnnotationId()) .type(typeDosDict.getType()) .value("test redaction in dossier yayy") .dossierDictionaryEntry(true) @@ -1031,7 +1064,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .state(EntryState.APPLIED) .build(), EntityLogEntry.builder() - .id(addRedactions.get(1).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier1.getId(), file1.getFileId())) + .entryId(addRedactions.get(1).getAnnotationId()) .type(typeDosTempDict.getType()) .value("test redaction in dossier template yayy") .dictionaryEntry(true) @@ -1047,10 +1081,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var redactionRequest1 = RedactionRequest.builder().dossierId(file1.getDossierId()).fileId(file1.getFileId()).dossierTemplateId(file1.getDossierTemplateId()).build(); when(entityLogService.getEntityLog(file1.getDossierId(), file1.getFileId())).thenReturn(entityLog1); - var entityLog2 = new EntityLog(1, + var entityLog2 = new EntityLog(dossier2.getId(), + file2.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id(addRedactions.get(1).getAnnotationId()) + .entityLogId(EntityLog.getId(dossier2.getId(), file2.getFileId())) + .entryId(addRedactions.get(1).getAnnotationId()) .type(typeDosTempDict.getType()) .value("test redaction in dossier template yayy") .dictionaryEntry(true) @@ -1171,10 +1208,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertThat(dossierDictionary2.getEntries()).isEmpty(); var annotationId = "AnnotationId"; - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id(annotationId) + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId(annotationId) .type(type.getType()) .value(lukeSkywalker) .dictionaryEntry(true) @@ -1255,10 +1295,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertThat(dossierDictionary2.getEntries()).isEmpty(); var annotationId = "AnnotationId"; - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id(annotationId) + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId(annotationId) .type(type.getType()) .value(lukeSkywalker) .dictionaryEntry(true) @@ -1426,10 +1469,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Anakin"), false, dossier.getId(), DictionaryEntryType.ENTRY); - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id("AnnotationId") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("AnnotationId") .type(type.getType()) .value("Anakin") .entryType(EntryType.ENTITY) @@ -1437,7 +1483,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .dictionaryEntry(false) .build(), EntityLogEntry.builder() - .id("AnnotationId2") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("AnnotationId2") .type(type.getType()) .value("Anakin2") .entryType(EntryType.ENTITY) @@ -1625,10 +1672,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Darth Vader"), false, dossier.getId(), DictionaryEntryType.ENTRY); - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id("dv") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("dv") .type(type.getType()) .value("Darth Vader") .entryType(EntryType.ENTITY) @@ -1636,7 +1686,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .dictionaryEntry(false) .build(), EntityLogEntry.builder() - .id("dv2") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("dv2") .type(type.getType()) .value("Vader Darth") .entryType(EntryType.ENTITY) @@ -1731,10 +1782,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getId(), DictionaryEntryType.ENTRY); - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id("AnnotationId") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("AnnotationId") .type(type.getType()) .value("Luke Skywalker") .entryType(EntryType.ENTITY) @@ -1742,7 +1796,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .dictionaryEntry(false) .build(), EntityLogEntry.builder() - .id("AnnotationId2") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("AnnotationId2") .type(type.getType()) .value("Skywalker Luke") .entryType(EntryType.ENTITY) @@ -1841,10 +1896,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getId(), DictionaryEntryType.ENTRY); - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id("AnnotationId") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("AnnotationId") .type(type.getType()) .value("Luke Skywalker") .entryType(EntryType.ENTITY) @@ -1852,7 +1910,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .dictionaryEntry(false) .build(), EntityLogEntry.builder() - .id("AnnotationId2") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("AnnotationId2") .type(type.getType()) .value("Skywalker Luke") .entryType(EntryType.ENTITY) @@ -1917,10 +1976,13 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var type = typeProvider.testAndProvideType(dossierTemplate, null, "type", false); - var entityLog = new EntityLog(1, + var entityLog = new EntityLog(dossier.getId(), + file.getFileId(), + 1, 1, List.of(EntityLogEntry.builder() - .id("annotationId") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("annotationId") .type(type.getType()) .value("lukeSkywalker") .dictionaryEntry(true) @@ -1928,7 +1990,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .state(EntryState.APPLIED) .build(), EntityLogEntry.builder() - .id("annotationId2") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("annotationId2") .type(type.getType()) .value("Johannesbrotkernmehl") .dictionaryEntry(true) @@ -1936,7 +1999,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .state(EntryState.APPLIED) .build(), EntityLogEntry.builder() - .id("annotationId3") + .entityLogId(EntityLog.getId(dossier.getId(), file.getFileId())) + .entryId("annotationId3") .type(type.getType()) .value("Baustelle") .dictionaryEntry(true) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java index 6a2c43035..5014aca79 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java @@ -299,8 +299,10 @@ public abstract class AbstractPersistenceServerServiceTest { // doNothing().when(pdfTronRedactionClient).testDigitalCurrentSignature(Mockito.any()); when(amqpAdmin.getQueueInfo(Mockito.any())).thenReturn(null); - when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(new EntityLog(1, 1, Lists.newArrayList(), null, 0, 0, 0, 0)); - when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.anyBoolean())).thenReturn(new EntityLog(1, + when(entityLogService.getEntityLog(Mockito.any(), Mockito.any())).thenReturn(new EntityLog("", "", 1, 1, Lists.newArrayList(), null, 0, 0, 0, 0)); + when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.anyBoolean())).thenReturn(new EntityLog("", + "", + 1, 1, Lists.newArrayList(), null, diff --git a/persistence-service-v1/persistence-service-shared-api-v1/build.gradle.kts b/persistence-service-v1/persistence-service-shared-api-v1/build.gradle.kts index b2dfa2a93..8e4c8efce 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/build.gradle.kts +++ b/persistence-service-v1/persistence-service-shared-api-v1/build.gradle.kts @@ -11,6 +11,7 @@ dependencies { api("org.springframework.boot:spring-boot-starter-validation:3.1.3") api("com.iqser.red.commons:jackson-commons:2.1.0") api("com.iqser.red.commons:dictionary-merge-commons:1.3.0") + implementation("org.springframework.boot:spring-boot-starter-data-mongodb:${springBootStarterVersion}") testImplementation("com.iqser.red.commons:test-commons:2.1.0") testImplementation("org.springframework.boot:spring-boot-starter-test:3.0.4") compileOnly("org.springdoc:springdoc-openapi-ui:1.7.0") diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/CascadeSave.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/CascadeSave.java new file mode 100644 index 000000000..05888eda4 --- /dev/null +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/CascadeSave.java @@ -0,0 +1,12 @@ +package com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface CascadeSave { + // +} diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLog.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLog.java index b1de32916..9c23a9551 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLog.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLog.java @@ -3,6 +3,10 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.analysislo import java.util.ArrayList; import java.util.List; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.DBRef; +import org.springframework.data.mongodb.core.mapping.Document; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -10,8 +14,15 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor +@Document(collection = "entity-logs") public class EntityLog { + @Id + private String id; + + private String dossierId; + + private String fileId; /** * Version 0 Redaction Logs have manual redactions merged inside them * Version 1 Redaction Logs only contain system ( rule/dictionary ) redactions. Manual Redactions are merged in at runtime. @@ -23,6 +34,8 @@ public class EntityLog { */ private int analysisNumber; + @DBRef + @CascadeSave private List entityLogEntry = new ArrayList<>(); private List legalBasis = new ArrayList<>(); @@ -31,4 +44,33 @@ public class EntityLog { private long rulesVersion = -1; private long legalBasisVersion = -1; + + public EntityLog(String dossierId, + String fileId, + long analysisVersion, + int analysisNumber, + List entityLogEntry, + List legalBasis, + long dictionaryVersion, + long dossierDictionaryVersion, + long rulesVersion, + long legalBasisVersion) { + + this.id = getId(dossierId, fileId); + this.dossierId = dossierId; + this.fileId = fileId; + this.analysisVersion = analysisVersion; + this.analysisNumber = analysisNumber; + this.entityLogEntry = entityLogEntry; + this.legalBasis = legalBasis; + this.dictionaryVersion = dictionaryVersion; + this.dossierDictionaryVersion = dossierDictionaryVersion; + this.rulesVersion = rulesVersion; + this.legalBasisVersion = legalBasisVersion; + } + + public static String getId(String dossierId, String fileId) { + return dossierId + "/" + fileId; + } + } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLogEntry.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLogEntry.java index 362ead2dc..1a222de20 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLogEntry.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLogEntry.java @@ -5,6 +5,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import org.springframework.data.mongodb.core.mapping.Document; + import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Builder; @@ -19,9 +21,11 @@ import lombok.experimental.FieldDefaults; @AllArgsConstructor @EqualsAndHashCode @FieldDefaults(level = AccessLevel.PRIVATE) +@Document(collection = "entity-log-entries") public class EntityLogEntry { - String id; + String entryId; + String entityLogId; String type; EntryType entryType; EntryState state;