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 d2cea5da..dc66fb5d 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/model/Document.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/model/Document.java @@ -50,6 +50,13 @@ public class Document { @Column(name = "thumbnail_generated_at") private LocalDateTime thumbnailGeneratedAt; + @Enumerated(EnumType.STRING) + @Column(name = "thumbnail_aspect", length = 16) + private ThumbnailAspect thumbnailAspect; + + @Column(name = "page_count") + private Integer pageCount; + // Originaler Dateiname beim Upload (z.B. "Brief_Oma_1940.pdf") @Column(name = "original_filename", nullable = false) @Schema(requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/backend/src/main/java/org/raddatz/familienarchiv/model/ThumbnailAspect.java b/backend/src/main/java/org/raddatz/familienarchiv/model/ThumbnailAspect.java new file mode 100644 index 00000000..630247fd --- /dev/null +++ b/backend/src/main/java/org/raddatz/familienarchiv/model/ThumbnailAspect.java @@ -0,0 +1,6 @@ +package org.raddatz.familienarchiv.model; + +public enum ThumbnailAspect { + PORTRAIT, + LANDSCAPE +} diff --git a/backend/src/test/java/org/raddatz/familienarchiv/repository/DocumentRepositoryTest.java b/backend/src/test/java/org/raddatz/familienarchiv/repository/DocumentRepositoryTest.java index 8d12a678..28728bb7 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/repository/DocumentRepositoryTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/repository/DocumentRepositoryTest.java @@ -8,6 +8,7 @@ import org.raddatz.familienarchiv.model.DocumentAnnotation; import org.raddatz.familienarchiv.model.DocumentStatus; import org.raddatz.familienarchiv.model.Person; import org.raddatz.familienarchiv.model.Tag; +import org.raddatz.familienarchiv.model.ThumbnailAspect; import org.raddatz.familienarchiv.model.TranscriptionBlock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; @@ -65,6 +66,40 @@ class DocumentRepositoryTest { assertThat(found.get().getStatus()).isEqualTo(DocumentStatus.PLACEHOLDER); } + // ─── thumbnailAspect + pageCount round-trip ─────────────────────────────── + + @Test + void save_persistsThumbnailAspectAndPageCount() { + Document document = Document.builder() + .title("Mit Aspekt") + .originalFilename("aspect.pdf") + .status(DocumentStatus.UPLOADED) + .thumbnailAspect(ThumbnailAspect.LANDSCAPE) + .pageCount(7) + .build(); + + Document saved = documentRepository.save(document); + Document found = documentRepository.findById(saved.getId()).orElseThrow(); + + assertThat(found.getThumbnailAspect()).isEqualTo(ThumbnailAspect.LANDSCAPE); + assertThat(found.getPageCount()).isEqualTo(7); + } + + @Test + void save_thumbnailAspectAndPageCount_defaultToNull() { + Document document = Document.builder() + .title("Ohne Aspekt") + .originalFilename("no_aspect.pdf") + .status(DocumentStatus.PLACEHOLDER) + .build(); + + Document saved = documentRepository.save(document); + Document found = documentRepository.findById(saved.getId()).orElseThrow(); + + assertThat(found.getThumbnailAspect()).isNull(); + assertThat(found.getPageCount()).isNull(); + } + // ─── findByStatus ───────────────────────────────────────────────────────── @Test