From e61e3797d1b091586d593a290020ed6719d20b1b Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 7 May 2026 21:43:34 +0200 Subject: [PATCH] feat(documents): add DocumentDensityResult and MonthBucket records (#385) Response shape for the upcoming GET /api/documents/density endpoint. minDate and maxDate are nullable (null on empty archive); buckets is always present. Co-Authored-By: Claude Sonnet 4.6 --- .../document/DocumentDensityResult.java | 13 +++++++++++++ .../familienarchiv/document/MonthBucket.java | 10 ++++++++++ 2 files changed, 23 insertions(+) create mode 100644 backend/src/main/java/org/raddatz/familienarchiv/document/DocumentDensityResult.java create mode 100644 backend/src/main/java/org/raddatz/familienarchiv/document/MonthBucket.java diff --git a/backend/src/main/java/org/raddatz/familienarchiv/document/DocumentDensityResult.java b/backend/src/main/java/org/raddatz/familienarchiv/document/DocumentDensityResult.java new file mode 100644 index 00000000..5c246113 --- /dev/null +++ b/backend/src/main/java/org/raddatz/familienarchiv/document/DocumentDensityResult.java @@ -0,0 +1,13 @@ +package org.raddatz.familienarchiv.document; + +import io.swagger.v3.oas.annotations.media.Schema; + +import java.time.LocalDate; +import java.util.List; + +public record DocumentDensityResult( + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) + List buckets, + LocalDate minDate, + LocalDate maxDate +) {} diff --git a/backend/src/main/java/org/raddatz/familienarchiv/document/MonthBucket.java b/backend/src/main/java/org/raddatz/familienarchiv/document/MonthBucket.java new file mode 100644 index 00000000..eb41ccb4 --- /dev/null +++ b/backend/src/main/java/org/raddatz/familienarchiv/document/MonthBucket.java @@ -0,0 +1,10 @@ +package org.raddatz.familienarchiv.document; + +import io.swagger.v3.oas.annotations.media.Schema; + +public record MonthBucket( + @Schema(requiredMode = Schema.RequiredMode.REQUIRED, example = "1915-08") + String month, + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) + int count +) {}