diff --git a/CLAUDE.md b/CLAUDE.md index 8364399a..639dd2ba 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -105,13 +105,15 @@ backend/src/main/java/org/raddatz/familienarchiv/ ### Domain Model -| Entity | Table | Key relationships | -| ----------- | ------------- | ------------------------------------------------------------------------------------- | -| `Document` | `documents` | ManyToOne `sender` (Person), ManyToMany `receivers` (Person), ManyToMany `tags` (Tag) | -| `Person` | `persons` | Referenced by documents as sender/receiver | -| `Tag` | `tag` | ManyToMany with documents via `document_tags` | -| `AppUser` | `app_users` | ManyToMany `groups` (UserGroup) | -| `UserGroup` | `user_groups` | Has a `Set permissions` | +| Entity | Table | Key relationships | +| ------------- | --------------- | --------------------------------------------------------------------------------------- | +| `Document` | `documents` | ManyToOne `sender` (Person), ManyToMany `receivers` (Person), ManyToMany `tags` (Tag) | +| `Person` | `persons` | Referenced by documents as sender/receiver | +| `Tag` | `tag` | ManyToMany with documents via `document_tags` | +| `AppUser` | `app_users` | ManyToMany `groups` (UserGroup) | +| `UserGroup` | `user_groups` | Has a `Set permissions` | +| `Geschichte` | `geschichten` | `GeschichteType` (`STORY`/`JOURNEY`); ManyToMany `persons` (Person); OneToMany `items` (JourneyItem) | +| `JourneyItem` | `journey_items` | ManyToOne `geschichte` (Geschichte, ON DELETE CASCADE); ManyToOne `document` (Document, ON DELETE SET NULL); `position`, optional `note` | **`DocumentStatus` lifecycle:** `PLACEHOLDER → UPLOADED → TRANSCRIBED → REVIEWED → ARCHIVED` diff --git a/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteSummary.java b/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteSummary.java index eb3fdb10..ae9d0de7 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteSummary.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteSummary.java @@ -1,5 +1,6 @@ package org.raddatz.familienarchiv.geschichte; +import io.swagger.v3.oas.annotations.media.Schema; import java.time.LocalDateTime; import java.util.UUID; @@ -13,12 +14,16 @@ import java.util.UUID; */ public interface GeschichteSummary { + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) UUID getId(); + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) String getTitle(); + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) GeschichteStatus getStatus(); + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) GeschichteType getType(); /** Nested closed projection — exposes only the fields the grid card needs. */ @@ -31,6 +36,7 @@ public interface GeschichteSummary { interface AuthorSummary { String getFirstName(); String getLastName(); + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) String getEmail(); } }